texlive[73764] Master/texmf-dist: lni (7feb25)

commits+karl at tug.org commits+karl at tug.org
Fri Feb 7 23:16:55 CET 2025


Revision: 73764
          https://tug.org/svn/texlive?view=revision&revision=73764
Author:   karl
Date:     2025-02-07 23:16:55 +0100 (Fri, 07 Feb 2025)
Log Message:
-----------
lni (7feb25)

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-paper-example-de.tex
    trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
    trunk/Master/texmf-dist/source/latex/lni/lni.dtx
    trunk/Master/texmf-dist/source/latex/lni/lni.ins
    trunk/Master/texmf-dist/tex/latex/lni/lni.cls

Removed Paths:
-------------
    trunk/Master/texmf-dist/bibtex/bst/lni/

Modified: trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/doc/latex/lni/CHANGELOG.md	2025-02-07 22:16:55 UTC (rev 73764)
@@ -4,26 +4,41 @@
 
 The format is based on [Keep a Changelog](https://keepachangelog.com/).
 
-## [Unreleased]
+## [2.0] - 2025-02-05
 
+### Removed
+
+- We removed BibTeX support (`lni.bst` and `lnig.bst`) - biblatex is the only supported tooling for the bibliography. [#144](https://github.com/gi-ev/LNI/issues/144)
+
+### Fixed
+
+- Left margin for nested lists [#175](https://github.com/gi-ev/LNI/issues/175)
+
 ## [1.10] - 2024-07-23
+
 ### Changed
+
 - Footnotes are set as superscripts in the footer
 - URLs are set using the text font instead of a typewriter font
 
 ### Fixed
-- Support for multiple affiliations (#173)
 
+- Support for multiple affiliations [#173](https://github.com/gi-ev/LNI/issues/173)
+
 ## [1.9] - 2024-07-01
+
 ### Added
-- Support for multiple affiliations (#158)
 
+- Support for multiple affiliations [#158](https://github.com/gi-ev/LNI/issues/158)
+
 ## [1.8.1] - 2024-01-08
 
 ### Changed
+
 - Option `defaultsups` now active for package `newtxtext`
 
 ### Fixed
+
 - Fixed `There's no line here to end.` error for more than two `\affil` calls
 - Fixed `\footnote`
 
@@ -179,7 +194,7 @@
 
 First release of the revised files
 
-[Unreleased]: https://github.com/gi-ev/LNI/compare/v1.10...HEAD
+[2.0]: https://github.com/gi-ev/LNI/compare/v1.10...v2.0
 [1.10]: https://github.com/gi-ev/LNI/compare/v1.9...v1.10
 [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
@@ -192,3 +207,5 @@
 [1.2]: https://github.com/gi-ev/LNI/compare/v1.1...v1.2
 [1.1]: https://github.com/gi-ev/LNI/compare/v1.0...v1.1
 [1.0]: https://github.com/gi-ev/LNI/releases/tag/v1.0
+
+<!-- markdownlint-disable-file MD012 MD024 MD033 MD053 -->

Modified: trunk/Master/texmf-dist/doc/latex/lni/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/README.md	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/doc/latex/lni/README.md	2025-02-07 22:16:55 UTC (rev 73764)
@@ -1,14 +1,14 @@
-# lni
+# lni - LaTeX class for submissions to the ``Lecture Notes in Informatics''
 
 ```yaml
 ----------------------------------------------------------------------------
 lni -- A class for submissions to the ``Lecture Notes in Informatics''
-(c) 2016-2024 Gesellschaft für Informatik (GI)
-Version:    1.10
+(c) 2016-2025 Gesellschaft für Informatik (GI)
+Version:    2.0
 Maintainer: Martin Sievers
 Email:      martin.sievers at schoenerpublizieren.de
 License:    Released under the LaTeX Project Public License v1.3c or later
-See:        http://www.latex-project.org/lppl.txt
+See:        https://www.latex-project.org/lppl/
 ----------------------------------------------------------------------------
 ```
 
@@ -15,28 +15,35 @@
 This is the official version of the class “lni” for submissions to the
 “[Lecture Notes in Informatics]” published by the “Gesellschaft für Informatik”
 ([GI]).
-
 It is based on previous templates created on behalf of the GI.
 
-Quick start:
-Download [`lni-author-template.tex`](lni-author-template.tex) and edit it in
-your favorite LaTeX editor.
+## Quick start
+
+Download [`lni-author-template.tex`](https://github.com/gi-ev/LNI/blob/main/lni-author-template.tex) and edit it in your favorite LaTeX editor.
+
+## Improved usage
+
 By default [BibTeX](https://www.ctan.org/pkg/bibtex) is used as bibliography tool.
-In case you want to use [biblatex](https://www.ctan.org/pkg/biblatex) together with
-[Biber](https://www.ctan.org/pkg/biber) (strongly recommended), read on in the
-documentation. There is a specialized package
-[biblatex-lni](https://ctan.org/pkg/biblatex-lni), which can easily be included
-to get correctly formed bibliographies. The easiest way is to add `biblatex` as class
-option. See documentation for details.
+In case you want to use [biblatex](https://www.ctan.org/pkg/biblatex) together with [Biber](https://www.ctan.org/pkg/biber) (strongly recommended), use the specialized package [biblatex-lni](https://ctan.org/pkg/biblatex-lni).
+The easiest way is to add `biblatex` as class option - or to directly start at `lni-paper-example-de.tex`.
 
-You should use `pdflatex` as `xelatex` and `lualatex` lack some features of the class file.
+## Links
 
-Stable versions are always uploaded to CTAN and available at <https://www.ctan.org/pkg/lni>.
-In addition, you will find the most recent developer version on GitHub at https://github.com/gi-ev/lni.
-The most recent documentation is available at <https://gi-ev.github.io/LNI/lni.pdf>.
-It includes a short description how to use the template and also provides troubleshooting hints.
+- Documentation: [`lni.pdf`](https://gi-ev.github.io/LNI/lni.pdf). It includes a short description how to use the template and also provides troubleshooting hints.
+- Changes: [`CHANGELOG.md`](https://github.com/gi-ev/LNI/blob/main/CHANGELOG.md#changelog) for a version history.
+- Stable versions: Always uploaded to CTAN and available at <https://www.ctan.org/pkg/lni>.
+- Developer repository: <https://github.com/gi-ev/LNI>
 
-Please see [`CHANGELOG.md`](CHANGELOG.md) for a version history
+The following links are based on the current development state:
 
+- Longer German paper example: [`lni-paper-example-de.tex`](https://github.com/gi-ev/LNI/blob/main/lni-paper-example-de.tex).
+  You will also need [`lni-paper-example-de.bib`](https://github.com/gi-ev/LNI/blob/main/lni-paper-example-de.bib).
+  The PDF is available at [`lni-paper-example-de.pdf`](https://gi-ev.github.io/LNI/lni-paper-example-de.pdf).
+- Rendered `lni-author-template.tex`: [`lni-author-template.pdf`](https://gi-ev.github.io/LNI/lni-author-template.pdf).
+
+## Note
+
+You should use `pdflatex` as `xelatex` and `lualatex` lack some features of the class file.
+
 [GI]: https://gi.de/
 [Lecture Notes in Informatics]: https://gi.de/service/publikationen/lni

Modified: trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex	2025-02-07 22:16:55 UTC (rev 73764)
@@ -1,6 +1,6 @@
 % !TeX encoding = UTF-8
 % !TeX program = pdflatex
-% !BIB program = bibtex
+% !BIB program = biber
 
 %%% To write an article in English, please use the option ``english'' in order
 %%% to get the correct hyphenation patterns and terms.
@@ -39,7 +39,5 @@
 %%% Beginn des Artikeltexts
 \section{Überschrift/Heading}
 
-%%% Angabe der .bib-Datei (ohne Endung) / State .bib file (im Falle der Nutzung von BibTeX)
-%% \bibliography{mybibfile}
-%% \printbibliography % im Falle der Nutzung von biblatex
+%% \printbibliography
 \end{document}

Modified: trunk/Master/texmf-dist/doc/latex/lni/lni-paper-example-de.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/lni-paper-example-de.tex	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/doc/latex/lni/lni-paper-example-de.tex	2025-02-07 22:16:55 UTC (rev 73764)
@@ -1,7 +1,8 @@
 % !TeX encoding = UTF-8
 % !TeX spellcheck = de_DE
+% !BIB program = biber
 
-\documentclass[biblatex]{lni}
+\documentclass{lni}
 \addbibresource{lni-paper-example-de.bib}
 
 %% Schöne Tabellen mittels \toprule, \midrule, \bottomrule
@@ -63,7 +64,7 @@
 
 \subsection{Literaturverzeichnis}
 Der letzte Abschnitt zeigt ein beispielhaftes Literaturverzeichnis für Bücher mit einem Autor \cite{Ez10} und zwei AutorInnen \cite{AB00}, einem Beitrag in Proceedings mit drei AutorInnen \cite{ABC01}, einem Beitrag in einem LNI Band mit mehr als drei AutorInnen \cite{Az09}, zwei Bücher mit den jeweils selben vier AutorInnen im selben Erscheinungsjahr \cite{Wa14} und \cite{Wa14b}, ein Journal \cite{Gl06}, eine Website \cite{GI19} bzw.\ anderweitige Literatur ohne konkrete AutorInnenschaft \cite{XX14}.
-Es wird biblatex verwendet, da es UTF8 sauber unterstützt und \href{https://github.com/gi-ev/LNI/issues/5}{im Gegensatz zu lni.bst} keine Fehler beim bibtexen auftreten.
+Es wird biblatex verwendet, da es UTF8 sauber unterstützt und viele Erweiterungen mit bringt.
 
 Referenzen sollten nicht direkt als Subjekt eingebunden werden, sondern immer nur durch Authorenanganben:
 Beispiel: \Citet{AB00} geben ein Beispiel, aber auch \citet{Az09}.
@@ -145,8 +146,7 @@
   3&=2-1
 \end{align}
 
-%% \bibliography{lni-paper-example-de.tex} ist hier nicht erlaubt: biblatex erwartet dies bei der Preambel
-%% Starten Sie "biber paper", um eine Biliographie zu erzeugen.
+%% Starten Sie "biber lni-paper-example-de", um eine Bibliographie zu erzeugen.
 \printbibliography
 
 \end{document}

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	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/source/latex/lni/lni.dtx	2025-02-07 22:16:55 UTC (rev 73764)
@@ -13,30 +13,6 @@
 \input docstrip.tex
 \keepsilent
 \askforoverwritefalse
-\declarepreamble\bibtexengpre
-lnig.bst
-Lecture Notes in Informatics Style File (english)
-Version 1.1 (2022/06/10)
-
-The Style File is based on alpha.bst
-
-This work may be freely used,
-distributed and modified.
-Modified files should be clearly indicated as such and renamed.
-\endpreamble
-
-\declarepreamble\bibtexgerpre
-lnig.bst
-Lecture Notes in Informatics Style File (german)
-Version 1.1 (2022/06/10)
-
-The Style File is based on alpha.bst
-
-This work may be freely used,
-distributed and modified.
-Modified files should be clearly indicated as such and renamed.
-\endpreamble
-
 \declarepreamble\classpre
 --------| -----------------------------------------------------------------
     lni:| A class for submissions to the ``Lecture Notes in Informatics''
@@ -50,17 +26,18 @@
 \def\templatepre{%
 \perCent\space !TeX encoding = UTF-8^^J%
 \perCent\space !TeX program = pdflatex^^J%
-\perCent\space !BIB program = bibtex^^J%
+\perCent\space !BIB program = biber^^J%
 }
 
 \def\templatepreger{%
 \perCent\space !TeX encoding = UTF-8^^J%
 \perCent\space !TeX spellcheck = de_DE^^J%
+\perCent\space !BIB program = biber^^J%
 }
 
 \postamble
 
-Copyright (C) 2016-2024 by Gesellschaft für Informatik e.V. (GI)
+Copyright (C) 2016-2025 by Gesellschaft für Informatik e.V. (GI)
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License (LPPL), either
@@ -81,8 +58,6 @@
                                 lni-author-template.tex
                                 lni-paper-example-de.bib
                                 lni-paper-example-de.tex
-                                lni.bst
-                                lnig.bst
 \endpostamble
 
 \usedir{tex/latex/lni}
@@ -91,13 +66,6 @@
   \usepreamble\classpre
   \file{\jobname.cls}{\from{\jobname.dtx}{class}}
 }
-\usedir{bibtex/bst/lni}
-\generate{
-  \usepreamble\bibtexengpre
-  \file{\jobname.bst}{\from{\jobname.dtx}{bibtex,eng}}
-  \usepreamble\bibtexgerpre
-  \file{lnig.bst}{\from{\jobname.dtx}{bibtex,ger}}
-}
 %</install>
 %<install>\endbatchfile
 %<*internal>
@@ -134,7 +102,7 @@
 %<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<class>\ProvidesClass{lni}
 %<*class>
-    [2024/07/23 v1.10 Official class for submissions to the ``Lecture Notes
+    [2025/02/05 v2.0 Official class for submissions to the ``Lecture Notes
     in Informatics'']
 %</class>
 %<*driver>
@@ -289,6 +257,8 @@
 % \changes{v1.9}{2024/07/01}{Support multiple affiliations (#158)}
 % \changes{v1.10}{2024/07/01}{Change font for URLs to text font and change footnote numbers to superscript}
 % \changes{v1.10}{2024/07/23}{Fix support multiple affiliations (#173)}
+% \changes{v1.11BETA}{2024/09/06}{Fix left margin for lists in theorems (#175)}
+% \changes{v2.0}{2025/02/05}{Remove BiBTeX support (#144)}
 %
 % \GetFileInfo{\jobname.dtx}
 % \DoNotIndex{\newcommand,\newenvironment}
@@ -326,8 +296,8 @@
 %
 % There is an additional package
 % \href{https://github.com/gi-ev/biblatex-lni}{\pkg{biblatex-lni}} for an easy
-% way of getting a correctly formed bibliography. This package can be
-% incorporated using the option \opt{biblatex}. See \cref{sec:bibliography} for
+% way of getting a correctly formed bibliography. This package is automatically used with v2.0 onwards.
+% See \cref{sec:bibliography} for
 % more information.
 %
 % \section{Installation}
@@ -340,7 +310,7 @@
 %
 % For a manual installation please call \texttt{pdflatex lni.dtx} at least
 % twice and
-% copy all resulting files (cls, tex, pdf and bst) to your local TEXMF tree.
+% copy all resulting files (cls, tex and pdf) to your local TEXMF tree.
 % Don't forget to update your file name database.
 %
 % \section{Usage}
@@ -381,16 +351,6 @@
 % is strongly recommended. Please note, that currently the bib file is supposed
 % to use the same encoding.
 %
-% \DescribeOption{biblatex (deprecated in v1.8; will become default option in next major release)}%
-% Nowadays bibliographies cannot only be produced with
-% \BibTeX{}, but with a much more powerful approach consisting of the package
-% \pkg{biblatex} and the tool \texttt{biber}.
-%
-% There is even a specialized package
-% \href{https://github.com/gi-ev/biblatex-lni}{\pkg{biblatex-lni}} which is
-% automatically used when setting the class option \opt{biblatex}. For more
-% information see as well \cref{sec:bibliography}.
-%
 % \DescribeOption{crop (new in v1.1)}%
 % Option \opt{crop} gives you some crop marks (using the package \pkg{crop}) to
 % better illustrate the final
@@ -635,15 +595,7 @@
 % preamble.
 %
 % \subsection{Bibliography}\label{sec:bibliography}
-% \enlargethispage{\baselineskip}The old \lni{} class file only supports
-% \BibTeX{} with bst files for German
-% and English submissions resp. If you want to use this approach for your
-% article you have to add \cs{bibliography\marg{Bib file}} at an appropriate
-% position within your text. The correct bst file is loaded automatically.
-%
-% With document option
-% \opt{biblatex} (cf.~\cref{sec:options}) you can easily switch to the
-% \pkg{biblatex} style \enquote{lni} provided by
+% The \lni{} class uses BibLaTeX for and the
 % \href{https://github.com/gi-ev/biblatex-lni}{\pkg{biblatex-lni}}.
 % However, you have to add information on the bib
 % file(s) in your preamble using \cs{addbibresource\marg{Bib file(s)}} and call
@@ -663,7 +615,7 @@
 % \begin{examplecode}
 % % !TeX program = pdflatex
 % % !BIB program = biber
-% \documentclass[biblatex]{lni}
+% \documentclass{lni}
 % ...
 % \ExecuteBibliographyOptions{...}
 % \addbibresource{FILENAME.bib}
@@ -698,15 +650,6 @@
 % \texttt{!Undefined control sequence. l.84
 % \textbackslash ulp at afterend},\\
 % just clean up (remove \texttt{paper.aux}) and recompile.
-% \item If the compiler error is\\
-% \texttt{!Package xkeyval Error: 'family\_i'
-% undefined in families blx at opt@name}\\\texttt{part'.},\\
-% it is an indicator that you
-% switched from \BibTeX{} to \pkg{biblatex}. Clean up (remove
-% \texttt{paper.bbl}) and recompile.
-% \item Errors with \BibTeX: The bst files may still report errors, although
-% the output is okay. This will be solved as soon as possible. However, you
-% might consider switching to \pkg{biblatex} (cf.~\cref{sec:bibliography}).
 % \end{itemize}
 %
 % \section{Bugs and feature request}
@@ -761,9 +704,6 @@
 \newif\ifusecleveref
 \useclevereftrue
 \DeclareOption{nocleveref}{\useclevereffalse}
-\newif\ifusebiblatex
-\usebiblatexfalse
-\DeclareOption{biblatex}{\usebiblatextrue}
 \newif\ifcrop
 \cropfalse
 \DeclareOption{crop}{\croptrue}
@@ -1008,13 +948,12 @@
 %    \end{macrocode}
 %    \begin{macrocode}
 \RequirePackage[autostyle]{csquotes}
-\ifusebiblatex
-  \RequirePackage[%
-    backend=biber,% UTF-8 support
-    date=year,
-    style=LNI,    % The GI style - see https://www.ctan.org/pkg/biblatex-lni
-    natbib=true   % Required for \Citet
-  ]{biblatex}[2016-09-15]% at least version 3.6 of biblatex is required.
+\RequirePackage[%
+   backend=biber,% UTF-8 support
+   date=year,
+   style=LNI,    % The GI style - see https://www.ctan.org/pkg/biblatex-lni
+   natbib=true   % Required for \Citet
+]{biblatex}[2016-09-15]% at least version 3.6 of biblatex is required.
 %    \end{macrocode}
 % \begin{macro}{\citeauthor}
 %    \begin{macrocode}
@@ -1032,9 +971,6 @@
     {\usebibmacro{postnote}}%
 %    \end{macrocode}
 % \end{macro}
-%    \begin{macrocode}
-\fi%
-%    \end{macrocode}
 % \changes{v1.8}{2023/11/06}{Load \pkg{amsmath} explicitly by default (was implicitly done before)}
 %    \begin{macrocode}
 \RequirePackage{amsmath}
@@ -1153,7 +1089,7 @@
 \renewcommand\Authsep{, }
 \renewcommand\Authands{\iflanguage{ngerman}{ und }{, and }}
 \renewcommand\Authand{\iflanguage{ngerman}{ und }{ and }}
-\NewDocumentCommand{\multiaffil}{ >{\SplitList{,}} m m m}{%   
+\NewDocumentCommand{\multiaffil}{ >{\SplitList{,}} m m m}{%
    \gdef\@currEmail{#2}
    \gdef\@currOrcid{#3}
    \ProcessList{#1}{\@multiaffil}
@@ -1242,7 +1178,7 @@
    \gdef\AB at las{}\gdef\AB at au@str{}%
    {\def\\{, \ignorespaces}\xdef\AB at temp{#2}}%
    \@temptokena=\expandafter{\AB at affillist}%
-   \xdef\AB at affillist{\the\@temptokena 
+   \xdef\AB at affillist{\the\@temptokena
       \footnotetext[\AB at note]{%
          \raggedright\AB at temp\ifcsempty{@emailsandorcids\AB at note}{}{, \csuse{@emailsandorcids\AB at note}}}%
    }
@@ -1454,7 +1390,7 @@
 %    \end{macrocode}
 % Set symbols and spacings for itemize
 %    \begin{macrocode}
-\setlist{topsep=0pt,itemsep=7pt,parsep=-2pt}
+\setlist{topsep=0pt,itemsep=7pt,parsep=-2pt,leftmargin=*}
 \setlist[itemize]{labelsep=0.70cm}%Abstand zur Aufzählungsnummer
 \setlist[itemize,1]{label=$\bullet$}
 \setlist[itemize,2]{topsep=9pt}
@@ -1603,14 +1539,6 @@
 \def\and{\texorpdfstring{\unskip\hspace{-0.42em},\hspace{.6em}}{, }}%
 %    \end{macrocode}
 %    \begin{macrocode}
-\ifusebiblatex
-\else
-   \iflnienglish
-      \bibliographystyle{lni}%
-   \else
-      \bibliographystyle{lnig}%
-   \fi%
-\fi%
 \newcommand*{\lni at abbrv}[1]{#1\@\xspace}
 \newcommand*{\lniabbrv}[2]{\gdef#1{\lni at abbrv{#2}}}
 \newcommand*{\lni at initialism}[1]{\textsc{#1}\xspace}
@@ -1668,1411 +1596,6 @@
 %\Finale
 %
 %\iffalse
-%
-%    \begin{macrocode}
-%<*bibtex>
-%<*eng|ger>
-%    \end{macrocode}
-%    \begin{macrocode}
-ENTRY
-  { address
-    author
-    booktitle
-    chapter
-    edition
-    editor
-    howpublished
-    institution
-    journal
-    key
-    month
-    note
-    number
-    organization
-    pages
-    publisher
-    school
-    series
-    title
-    type
-    volume
-    year
-  }
-  {}
-  { label extra.label sort.label }
-
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
-  #1 'mid.sentence :=
-  #2 'after.sentence :=
-  #3 'after.block :=
-}
-
-STRINGS { s t }
-
-FUNCTION {output.nonnull}
-{ 's :=
-  output.state mid.sentence =
-    { ", " * write$ }
-    { output.state after.block =
-	{ add.period$ write$
-	  newline$
-	  "\newblock " write$
-	}
-	{ output.state before.all =
-	    'write$
-	    { add.period$ " " * write$ }
-	  if$
-	}
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.check}
-{ 't :=
-  duplicate$ empty$
-    { pop$ "empty " t * " in " * cite$ * warning$ }
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.bibitem}
-{ newline$
-  "\bibitem[" write$
-  label write$
-  "]{" write$
-  cite$ write$
-  "}" write$
-  newline$
-  ""
-  before.all 'output.state :=
-}
-
-FUNCTION {fin.entry}
-{ add.period$
-  write$
-  newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
-    'skip$
-    { after.block 'output.state := }
-  if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
-    'skip$
-    { output.state before.all =
-	'skip$
-	{ after.sentence 'output.state := }
-      if$
-    }
-  if$
-}
-
-FUNCTION {not}
-{   { #0 }
-    { #1 }
-  if$
-}
-
-FUNCTION {and}
-{   'skip$
-    { pop$ #0 }
-  if$
-}
-
-FUNCTION {or}
-{   { pop$ #1 }
-    'skip$
-  if$
-}
-
-FUNCTION {new.block.checka}
-{ empty$
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {new.sentence.checka}
-{ empty$
-    'skip$
-    'new.sentence
-  if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.sentence
-  if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
-    { pop$ "" }
-    'skip$
-  if$
-}
-
-FUNCTION {emphasize}
-{ duplicate$ empty$
-    { pop$ "" }
-    { "{\em " swap$ * "}" * }
-  if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {format.names} %formats the names of the authors
-{ 's :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't
-% last name, prename(s)
-     :=
-      nameptr #1 >
-        { namesleft #1 >
-            { "; " * t * }
-%
-% (RT) Now here we have discovered a bug. The bibliography of the LaTeX-book shows
-% the fault: If there are three or more authors, then the final ``and'' before
-% the last author's name is preceeded by a comma. This looks ugly and is
-% wrong.
-% The original and faulty line in format.names reads
-%            { numnames #2 >
-% Actually the generation of the comma is dependent on the number of names
-% left. Therefore:
-%
-            { namesleft #2 >
-                { ";" * }
-                'skip$
-              if$
-              t "others" =
-                { " et~al." * }
-% ``and'' changed to ``;''
-                { "; " * t * }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-
-}
-
-FUNCTION {format.authors}
-{ author empty$
-    { "" }
-    { author format.names }
-  if$
-  ": " * %add a : after the authors
-}
-
-FUNCTION {format.editors}
-{ editor empty$
-    { "" }
-    { editor format.names
-      editor num.names$ #1 >
-% use abbreviations
-%</eng|ger>
-%<*eng>
-	{ ", eds" * }
-	{ ", ed." * }
-%</eng>
-%<*ger>
-	{ ", Hrsg." * }
-	{ ", Hrsg." * }
-%</ger>
-%<*eng|ger>
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.title}
-{ title empty$
-    { "" }
-% (RT) the title as typed in the database here
-%    { title "t" change.case$ }
-    'title
-  if$
-}
-
-FUNCTION {n.dashify}
-{ 't :=
-  ""
-    { t empty$ not }
-    { t #1 #1 substring$ "-" =
-	{ t #1 #2 substring$ "--" = not
-	    { "--" *
-	      t #2 global.max$ substring$ 't :=
-	    }
-	    {   { t #1 #1 substring$ "-" = }
-		{ "-" *
-		  t #2 global.max$ substring$ 't :=
-		}
-	      while$
-	    }
-	  if$
-	}
-	{ t #1 #1 substring$ *
-	  t #2 global.max$ substring$ 't :=
-	}
-      if$
-    }
-  while$
-}
-
-FUNCTION {format.date}
-{ year empty$
-    { month empty$
-	{ "" }
-	{ "there's a month but no year in " cite$ * warning$
-	  month
-	}
-      if$
-    }
-    { month empty$
-	'year
-	{ month " " * year * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.btitle}
-{ title % no emphasize
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
-    { "~" }
-    { " " }
-  if$
-  swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
-    'pop$
-    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
-  if$
-}
-
-FUNCTION {format.bvolume}
-{ volume empty$
-    { "" }
-%</eng|ger>
-%<*eng>
-    { "volume" volume tie.or.space.connect
-%</eng>
-%<*ger>
-    { "Jgg." volume tie.or.space.connect
-%</ger>
-%<*eng|ger>
-      series empty$
-	'skip$
-%</eng|ger>
-%<*eng>
-	{ " of " * series % no emphasize
-%</eng>
-%<*ger>
-	{ " in " * series % no emphasize
-%</ger>
-%<*eng|ger>
-	* }
-      if$
-      "volume and number" number either.or.check
-    }
-  if$
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
-    { number empty$
-	{ series field.or.null }
-	{ output.state mid.sentence =
-	    { "" } %No word before number
-	    { "" }
-	  if$
-	  series empty$
-        { "" }
-        { series * }
-      if$
-          number tie.or.space.connect % series and then the number, eg LNI 001
-        }
-    if$
-    }
-    { "" }
-  if$
-}
-
-FUNCTION {format.edition}
-{ edition empty$
-    { "" }
-    { output.state mid.sentence =
-%</eng|ger>
-%<*eng>
-	{ edition "l" change.case$ " edition" * }
-	{ edition "t" change.case$ " edition" * }
-%</eng>
-%<*ger>
-	{ edition "l" change.case$ ".~Auflage" * }
-	{ edition "t" change.case$ ".~Auflage" * }
-%</ger>
-%<*eng|ger>
-      if$
-    }
-  if$
-}
-
-INTEGERS { multiresult }
-
-FUNCTION {multi.page.check}
-{ 't :=
-  #0 'multiresult :=
-    { multiresult not
-      t empty$ not
-      and
-    }
-    { t #1 #1 substring$
-      duplicate$ "-" =
-      swap$ duplicate$ "," =
-      swap$ "+" =
-      or or
-	{ #1 'multiresult := }
-	{ t #2 global.max$ substring$ 't := }
-      if$
-    }
-  while$
-  multiresult
-}
-
-FUNCTION {format.pages}
-{ pages empty$
-    { "" }
-    { pages multi.page.check
-%</eng|ger>
-%<*eng>
-    %  -> Use abbreviation: pp. for pages, p. for page
-	{ "pp." pages n.dashify tie.or.space.connect }
-	{ "p." pages tie.or.space.connect }
-%</eng>
-%<*ger>
-    %  -> Nutze Abk.: S.
-	{ "S." pages n.dashify tie.or.space.connect }
-	{ "S." pages tie.or.space.connect }
-%</ger>
-%<*eng|ger>
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.vol.num.pages}
-{ volume field.or.null
-  number empty$
-    'skip$
-    { "(" number * ")" * *
-      volume empty$
-	{ "there's a number but no volume in " cite$ * warning$ }
-	'skip$
-      if$
-    }
-  if$
-  pages empty$
-    'skip$
-    { duplicate$ empty$
-	{ pop$ format.pages }
-	{ ":" * pages n.dashify * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
-    'format.pages
-    { type empty$
-%</eng|ger>
-%<*eng>
-	{ "chapter" }
-%</eng>
-%<*ger>
-	{ "Kapitel" }
-%</ger>
-%<*eng|ger>
-	{ type "l" change.case$ }
-      if$
-      chapter tie.or.space.connect
-      pages empty$
-	'skip$
-	{ ", " * format.pages * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
-    { "" }
-    { editor empty$
-% no emphasize
-%       { "In: " booktitle emphasize * }
-%       { "In: " format.editors * ", " * booktitle emphasize * }
-        { "In: " booktitle  * }
-        { "In (" format.editors * "): " * booktitle  * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
-  month empty$ year empty$ note empty$
-  and and and and and
-  key empty$ not and
-    { "all relevant fields are empty in " cite$ * warning$ }
-    'skip$
-  if$
-}
-
-FUNCTION {format.thesis.type}
-{ type empty$
-    'skip$
-    { pop$
-      type "t" change.case$
-    }
-  if$
-}
-
-FUNCTION {format.tr.number}
-{ type empty$
-%</eng|ger>
-%<*eng>
-    { "Technical Report" }
-%</eng>
-%<*ger>
-    { "Bericht" }
-%</ger>
-%<*eng|ger>
-    'type
-  if$
-  number empty$
-    { "t" change.case$ }
-    { number tie.or.space.connect }
-  if$
-}
-
-FUNCTION {format.article.crossref}
-{ key empty$
-    { journal empty$
-	{ "need key or journal for " cite$ * " to crossref " * crossref *
-	  warning$
-	  ""
-	}
-	{ "In {\em " journal * "\/}" * }
-      if$
-    }
-    { "In " key * }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
-  editor num.names$ duplicate$
-  #2 >
-    { pop$ " et~al." * }
-    { #2 <
-	'skip$
-	% change order of names
-	{ editor #2 "{vv~}{ll}{, jj}{, f.}" format.name$ "others" =
-	    { " et~al." * }
-	    % ; between two editors and change order of names
-        { "; " * editor #2 "{vv~}{ll}{, jj}{, f.}" format.name$ * }
-	  if$
-	}
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.book.crossref}
-{ volume empty$
-    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
-      "In "
-    }
-%</eng|ger>
-%<*eng>
-    { "Volume" volume tie.or.space.connect
-      " of " *
-    }
-%</eng>
-%<*ger>
-    { "Jgg." volume tie.or.space.connect
-      " in " *
-    }
-%</ger>
-%<*eng|ger>
-  if$
-  editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-	{ series empty$
-	    { "need editor, key, or series for " cite$ * " to crossref " *
-	      crossref * warning$
-	      "" *
-	    }
-	    { "{\em " * series * "\/}" * }
-	  if$
-	}
-	{ key * }
-      if$
-    }
-    { format.crossref.editor * }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{ editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-	{ booktitle empty$
-	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
-	      crossref * warning$
-	      ""
-	    }
-	    % Add : after In
-	    { "In: {\em " booktitle * "\/}" * }
-	  if$
-	}
-	% Add : after In
-	{ "In: " key * }
-      if$
-    }
-    % Add : after In and editiors in ()
-    { "In: (" format.crossref.editor * ")" * }
-  if$
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {article}
-{ output.bibitem
-  format.authors write$ %"author" output.check %% No dot after authors
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { journal % no emphasize
-    "journal" output.check
-      format.vol.num.pages output
-      format.date "year" output.check
-    }
-    { format.article.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {book}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check }
-    { format.authors write$ %output.nonnull %%no dot after authors:
-      crossref missing$
-	{ "author and editor" editor either.or.check }
-	'skip$
-      if$
-    }
-  if$
-  new.block
-  format.btitle "title" output.check
-  crossref missing$
-    { format.bvolume output
-      new.block
-      format.number.series output
-      new.sentence
-      publisher "publisher" output.check
-      address output
-    }
-    { new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.edition output
-  format.date "year" output.check
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {booklet}
-{ output.bibitem
-  format.authors output
-  new.block
-  format.title "title" output.check
-  howpublished address new.block.checkb
-  howpublished output
-  address output
-  format.date output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check }
-    { format.authors write$ %*output.nonnull %%no dot after authors:
-      crossref missing$
-	{ "author and editor" editor either.or.check }
-	'skip$
-      if$
-    }
-  if$
-  new.block
-  format.btitle "title" output.check
-  new.block
-  crossref missing$ %changed whole order of next lines
-    {
-      format.in.ed.booktitle "booktitle" output.check %added: mention title of the related book and editors
-      format.bvolume output
-      new.block
-      format.number.series output
-      % new.sentence %% no dot after the number
-      publisher "publisher" output.check
-      address output
-    }
-    { format.chapter.pages "chapter and pages" output.check
-      new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.chapter.pages "chapter and pages" output.check
-  format.edition output
-  format.date "year" output.check
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
-  format.authors write$ %"author" output.check %%no dot after authors:
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.bvolume output
-      format.number.series output
-      format.chapter.pages output
-      new.sentence
-      publisher "publisher" output.check
-      address output
-      format.edition output
-      format.date "year" output.check
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.chapter.pages output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
-  format.authors write$ %"author" output.check %%no dot after authors:
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      new.block
-      format.bvolume output
-      format.number.series output
-      address empty$
-	{ organization publisher new.sentence.checkb
-	  organization output
-	  publisher output
-	}
-	{ organization output
-          publisher output
-          address output.nonnull
-        }
-      if$
-      format.pages output
-      format.date "year" output.check
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-
-FUNCTION {manual}
-{ output.bibitem
-  author empty$
-    { organization empty$
-	'skip$
-	{ organization output.nonnull
-	  address output
-	}
-      if$
-    }
-    { format.authors output.nonnull }
-  if$
-  new.block
-  format.btitle "title" output.check
-  author empty$
-    { organization empty$
-	{ address new.block.checka
-	  address output
-	}
-	'skip$
-      if$
-    }
-    { organization address new.block.checkb
-      organization output
-      address output
-    }
-  if$
-  format.edition output
-  format.date output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
-  format.authors write$ %"author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-%</eng|ger>
-%<*eng>
-  "Master's thesis" format.thesis.type output.nonnull
-%</eng>
-%<*ger>
-  "Masterarbeit" format.thesis.type output.nonnull
-%</ger>
-%<*eng|ger>
-  school "school" output.check
-  address output
-  format.date "year" output.check
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
-  author empty$
-    { ""  }
-    { format.authors write$ }
-  if$
-  %title howpublished new.block.checkb
-  format.title output
-  howpublished new.block.checka
-  howpublished output
-  format.date output
-  new.block
-  note output
-  fin.entry
-  empty.misc.check
-}
-
-FUNCTION {online}
-{ output.bibitem
-  title howpublished new.block.checkb
-  format.title output
-  howpublished new.block.checka
-  howpublished output
-  note output
-  fin.entry
-  empty.misc.check
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
-  format.authors write$ %"author" output.check
-  new.block
-  format.btitle "title" output.check
-  new.block
-%</eng|ger>
-%<*eng>
-  "PhD thesis" format.thesis.type output.nonnull
-%</eng>
-%<*ger>
-  "Dissertation" format.thesis.type output.nonnull
-%</ger>
-%<*eng|ger>
-  school "school" output.check
-  address output
-  format.date "year" output.check
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
-  editor empty$
-    { organization output }
-    { format.editors output.nonnull }
-  if$
-  new.block
-  format.btitle "title" output.check
-  format.bvolume output
-  format.number.series output
-  address empty$
-    { editor empty$
-	{ publisher new.sentence.checka }
-	{ organization publisher new.sentence.checkb
-	  organization output
-	}
-      if$
-      publisher output
-      format.date "year" output.check
-    }
-    { address output.nonnull
-      format.date "year" output.check
-      new.sentence
-      editor empty$
-	'skip$
-	{ organization output }
-      if$
-      publisher output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
-  format.authors write$ %"author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  format.tr.number output.nonnull
-  institution "institution" output.check
-  address output
-  format.date "year" output.check
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
-  format.authors write$ %"author" output.check
-  new.block
-  format.title "title" output.check
-  new.block
-  note "note" output.check
-  format.date output
-  fin.entry
-}
-
-FUNCTION {default.type} { misc }
-
-%</eng|ger>
-%<*eng>
-MACRO {jan} {"January"}
-
-MACRO {feb} {"February"}
-
-MACRO {mar} {"March"}
-
-MACRO {apr} {"April"}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"June"}
-
-MACRO {jul} {"July"}
-
-MACRO {aug} {"August"}
-
-MACRO {sep} {"September"}
-
-MACRO {oct} {"October"}
-
-MACRO {nov} {"November"}
-
-MACRO {dec} {"December"}
-%</eng>
-%<*ger>
-MACRO {jan} {"Januar"}
-
-MACRO {feb} {"Februar"}
-
-MACRO {mar} {"März"}
-
-MACRO {apr} {"April"}
-
-MACRO {may} {"Mai"}
-
-MACRO {jun} {"Juni"}
-
-MACRO {jul} {"Juli"}
-
-MACRO {aug} {"August"}
-
-MACRO {sep} {"September"}
-
-MACRO {oct} {"Oktober"}
-
-MACRO {nov} {"November"}
-
-MACRO {dec} {"Dezember"}
-%</ger>
-%<*eng|ger>
-
-MACRO {acmcs} {"ACM Computing Surveys"}
-
-MACRO {acta} {"Acta Informatica"}
-
-MACRO {cacm} {"Communications of the ACM"}
-
-MACRO {ibmjrd} {"IBM Journal of Research and Development"}
-
-MACRO {ibmsj} {"IBM Systems Journal"}
-
-MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
-
-MACRO {ieeetc} {"IEEE Transactions on Computers"}
-
-MACRO {ieeetcad}
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
-
-MACRO {ipl} {"Information Processing Letters"}
-
-MACRO {jacm} {"Journal of the ACM"}
-
-MACRO {jcss} {"Journal of Computer and System Sciences"}
-
-MACRO {scp} {"Science of Computer Programming"}
-
-MACRO {sicomp} {"SIAM Journal on Computing"}
-
-MACRO {tocs} {"ACM Transactions on Computer Systems"}
-
-MACRO {tods} {"ACM Transactions on Database Systems"}
-
-MACRO {tog} {"ACM Transactions on Graphics"}
-
-MACRO {toms} {"ACM Transactions on Mathematical Software"}
-
-MACRO {toois} {"ACM Transactions on Office Information Systems"}
-
-MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
-
-MACRO {tcs} {"Theoretical Computer Science"}
-
-READ
-
-FUNCTION {sortify}
-{ purify$
-  "l" change.case$
-}
-
-INTEGERS { len }
-
-FUNCTION {chop.word}
-{ 's :=
-  'len :=
-  s #1 len substring$ =
-    { s len #1 + global.max$ substring$ }
-    's
-  if$
-}
-
-INTEGERS { et.al.char.used }
-
-FUNCTION {initialize.et.al.char.used}
-{ #0 'et.al.char.used :=
-}
-
-EXECUTE {initialize.et.al.char.used}
-
-FUNCTION {format.lab.names}
-{ 's :=
-  s num.names$ 'numnames :=
-  numnames #1 >
-    { numnames #3 > %create short entry for 3 authors max
-        { #1 'namesleft := } %if more than 3 authors take only first one
-        { numnames 'namesleft := }
-      if$
-      #1 'nameptr :=
-      ""
-        { namesleft #0 > }
-        { nameptr numnames =
-            { s nameptr "{ff }{vv }{ll}{ jj}" format.name$
-            "others" =
-                { pop$ s #1 "{ll}" format.name$ #2 text.prefix$ %% second sign of first author if there are others
-                }
-                { s nameptr "{v{}}{l{}}" format.name$ * } %%formats last author
-              if$
-            }
-            { s nameptr "{v{}}{l{}}" format.name$ * } %%formats first, and if three, also the second author
-          if$
-          nameptr #1 + 'nameptr :=
-          namesleft #1 - 'namesleft :=
-        }
-      while$
-      numnames #3 >
-        { pop$ s #1 "{ll}" format.name$ #2 text.prefix$ } % if more than 3 authors take second letter of first name
-        'skip$
-      if$
-    }
-    { s #1 "{v{}}{l{}}" format.name$
-      duplicate$ text.length$ #2 <
-        { pop$ s #1 "{ll}" format.name$ #2 text.prefix$} %get rid of the rest of the name (only first two letters are needed for one author)
-        'skip$
-      if$
-    }
-  if$
-}
-
-FUNCTION {author.key.label} %% sets the author abbreviation in []
-{ author empty$
-    { key empty$
-	{ title #1 #2 substring$ } % Use First two letters of title if there is no author
-	{ key #3 text.prefix$ }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {author.editor.key.label}
-{ author empty$
-    { editor empty$
-	{ key empty$
-	    { title #1 #2 substring$ }% Use First two letters of title if there is no editor
-	    { key #3 text.prefix$ }
-	  if$
-	}
-	{ editor format.lab.names }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {author.key.organization.label}
-{ author empty$
-    { key empty$
-	{ organization empty$
-	    { cite$ #1 #3 substring$ }
-	    { "The " #4 organization chop.word #3 text.prefix$ }
-	  if$
-	}
-	{ key #3 text.prefix$ }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {editor.key.organization.label}
-{ editor empty$
-    { key empty$
-	{ organization empty$
-	    { cite$ #1 #3 substring$ }
-	    { "The " #4 organization chop.word #3 text.prefix$ }
-	  if$
-	}
-	{ key #3 text.prefix$ }
-      if$
-    }
-    { editor format.lab.names }
-  if$
-}
-
-FUNCTION {calc.label}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
-    { type$ "proceedings" =
-	'editor.key.organization.label
-	{ type$ "manual" =
-	    'author.key.organization.label
-	    'author.key.label
-	  if$
-	}
-      if$
-    }
-  if$
-  duplicate$
-  year field.or.null purify$ #-1 #2 substring$
-  *
-  'label :=
-  year field.or.null purify$ #-1 #4 substring$
-  *
-  sortify 'sort.label :=
-}
-
-FUNCTION {sort.format.names}
-{ 's :=
-  #1 'nameptr :=
-  ""
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { nameptr #1 >
-	{ "   " * }
-	'skip$
-      if$
-      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
-      nameptr numnames = t "others" = and
-	{ "et al" * }
-	{ t sortify * }
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
-  "A " #2
-    "An " #3
-      "The " #4 t chop.word
-    chop.word
-  chop.word
-  sortify
-  #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
-    { key empty$
-	{ "to sort, need author or key in " cite$ * warning$
-	  ""
-	}
-	{ key sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
-   { editor empty$
-	{ key empty$
-	    { "to sort, need author, editor, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ editor sort.format.names }
-      if$
-   }
-   { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.organization.sort}
-{ author empty$
-    { organization empty$
-	{ key empty$
-	    { "to sort, need author, organization, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ "The " #4 organization chop.word sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {editor.organization.sort}
-{ editor empty$
-    { organization empty$
-	{ key empty$
-	    { "to sort, need editor, organization, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ "The " #4 organization chop.word sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-
-FUNCTION {presort}
-{ calc.label
-  sort.label
-  "    "
-  *
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-	'editor.organization.sort
-	{ type$ "manual" =
-	    'author.organization.sort
-	    'author.sort
-	  if$
-	}
-      if$
-    }
-  if$
-  *
-  "    "
-  *
-  year field.or.null sortify
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {presort}
-
-SORT
-
-STRINGS { longest.label last.sort.label next.extra }
-
-INTEGERS { longest.label.width last.extra.num }
-
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
-  #0 int.to.chr$ 'last.sort.label :=
-  "" 'next.extra :=
-  #0 'longest.label.width :=
-  #0 'last.extra.num :=
-}
-
-FUNCTION {forward.pass}
-{ last.sort.label sort.label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num int.to.chr$ 'extra.label :=
-    }
-    { "a" chr.to.int$ 'last.extra.num :=
-      "" 'extra.label :=
-      sort.label 'last.sort.label :=
-    }
-  if$
-}
-
-FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-    'skip$
-  if$
-  label extra.label * 'label :=
-  label width$ longest.label.width >
-    { label 'longest.label :=
-      label width$ 'longest.label.width :=
-    }
-    'skip$
-  if$
-  extra.label 'next.extra :=
-}
-
-EXECUTE {initialize.longest.label}
-
-ITERATE {forward.pass}
-
-REVERSE {reverse.pass}
-
-FUNCTION {begin.bib}
-{ et.al.char.used
-% to make it compatible with singlepass, we use \def
-%    { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
-    { "\gdef\etalchar#1{$^{#1}$}" write$ newline$ }
-    'skip$
-  if$
-  preamble$ empty$
-    'skip$
-    { preamble$ write$ newline$ }
-  if$
-  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
-}
-
-EXECUTE {begin.bib}
-
-EXECUTE {init.state.consts}
-
-ITERATE {call.type$}
-
-FUNCTION {end.bib}
-{ newline$
-  "\end{thebibliography}" write$ newline$
-}
-
-EXECUTE {end.bib}
-%</eng|ger>
-%</bibtex>
 %<*template>
 % % !TeX program = pdflatex
 % % !BIB program = biber
@@ -3114,9 +1637,7 @@
 %%% Beginn des Artikeltexts
 \section{Überschrift/Heading}
 
-%%% Angabe der .bib-Datei (ohne Endung) / State .bib file (im Falle der Nutzung von BibTeX)
-%% \bibliography{mybibfile}
-%% \printbibliography % im Falle der Nutzung von biblatex
+%% \printbibliography
 \end{document}
 %</template>
 %<*exampledebib>
@@ -3216,7 +1737,7 @@
 % % !TeX program = pdflatex
 % % !BIB program = biber
 % % !TeX spellcheck = de-DE
-\documentclass[biblatex]{lni}
+\documentclass{lni}
 \addbibresource{lni-paper-example-de.bib}
 
 %% Schöne Tabellen mittels \toprule, \midrule, \bottomrule
@@ -3278,7 +1799,7 @@
 
 \subsection{Literaturverzeichnis}
 Der letzte Abschnitt zeigt ein beispielhaftes Literaturverzeichnis für Bücher mit einem Autor \cite{Ez10} und zwei AutorInnen \cite{AB00}, einem Beitrag in Proceedings mit drei AutorInnen \cite{ABC01}, einem Beitrag in einem LNI Band mit mehr als drei AutorInnen \cite{Az09}, zwei Bücher mit den jeweils selben vier AutorInnen im selben Erscheinungsjahr \cite{Wa14} und \cite{Wa14b}, ein Journal \cite{Gl06}, eine Website \cite{GI19} bzw.\ anderweitige Literatur ohne konkrete AutorInnenschaft \cite{XX14}.
-Es wird biblatex verwendet, da es UTF8 sauber unterstützt und \href{https://github.com/gi-ev/LNI/issues/5}{im Gegensatz zu lni.bst} keine Fehler beim bibtexen auftreten.
+Es wird biblatex verwendet, da es UTF8 sauber unterstützt und viele Erweiterungen mit bringt.
 
 Referenzen sollten nicht direkt als Subjekt eingebunden werden, sondern immer nur durch Authorenanganben:
 Beispiel: \Citet{AB00} geben ein Beispiel, aber auch \citet{Az09}.
@@ -3360,8 +1881,7 @@
   3&=2-1
 \end{align}
 
-%% \bibliography{lni-paper-example-de.tex} ist hier nicht erlaubt: biblatex erwartet dies bei der Preambel
-%% Starten Sie "biber paper", um eine Biliographie zu erzeugen.
+%% Starten Sie "biber lni-paper-example-de", um eine Bibliographie zu erzeugen.
 \printbibliography
 
 \end{document}

Modified: trunk/Master/texmf-dist/source/latex/lni/lni.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lni/lni.ins	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/source/latex/lni/lni.ins	2025-02-07 22:16:55 UTC (rev 73764)
@@ -10,30 +10,6 @@
 \input docstrip.tex
 \keepsilent
 \askforoverwritefalse
-\declarepreamble\bibtexengpre
-lnig.bst
-Lecture Notes in Informatics Style File (english)
-Version 1.1 (2022/06/10)
-
-The Style File is based on alpha.bst
-
-This work may be freely used,
-distributed and modified.
-Modified files should be clearly indicated as such and renamed.
-\endpreamble
-
-\declarepreamble\bibtexgerpre
-lnig.bst
-Lecture Notes in Informatics Style File (german)
-Version 1.1 (2022/06/10)
-
-The Style File is based on alpha.bst
-
-This work may be freely used,
-distributed and modified.
-Modified files should be clearly indicated as such and renamed.
-\endpreamble
-
 \declarepreamble\classpre
 --------| -----------------------------------------------------------------
     lni:| A class for submissions to the ``Lecture Notes in Informatics''
@@ -47,7 +23,7 @@
 \def\templatepre{%
 \perCent\space !TeX encoding = UTF-8^^J%
 \perCent\space !TeX program = pdflatex^^J%
-\perCent\space !BIB program = bibtex^^J%
+\perCent\space !BIB program = biber^^J%
 }
 
 \def\templatepreger{%
@@ -57,7 +33,7 @@
 
 \postamble
 
-Copyright (C) 2016-2023 by Gesellschaft für Informatik e.V. (GI)
+Copyright (C) 2016-2025 by Gesellschaft für Informatik e.V. (GI)
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License (LPPL), either
@@ -78,8 +54,6 @@
                                 lni-author-template.tex
                                 lni-paper-example-de.bib
                                 lni-paper-example-de.tex
-                                lni.bst
-                                lnig.bst
 \endpostamble
 
 \usedir{tex/latex/lni}
@@ -88,27 +62,20 @@
   \usepreamble\classpre
   \file{\jobname.cls}{\from{\jobname.dtx}{class}}
 }
-\usedir{bibtex/bst/lni}
-\generate{
-  \usepreamble\bibtexengpre
-  \file{\jobname.bst}{\from{\jobname.dtx}{bibtex,eng}}
-  \usepreamble\bibtexgerpre
-  \file{lnig.bst}{\from{\jobname.dtx}{bibtex,ger}}
-}
 \endbatchfile
-%% 
-%% Copyright (C) 2016-2023 by Gesellschaft für Informatik e.V. (GI)
-%% 
+%%
+%% Copyright (C) 2016-2025 by Gesellschaft für Informatik e.V. (GI)
+%%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License (LPPL), either
 %% version 1.3c of this license or (at your option) any later
 %% version.  The latest version of this license is in the file:
-%% 
+%%
 %% http://www.latex-project.org/lppl.txt
-%% 
+%%
 %% This work is "maintained" (as per LPPL maintenance status) by
 %% Martin Sievers.
-%% 
+%%
 %% This work consists of the file  lni.dtx
 %%                                 lni.ins
 %%                                 README.md
@@ -118,7 +85,5 @@
 %%                                 lni-author-template.tex
 %%                                 lni-paper-example-de.bib
 %%                                 lni-paper-example-de.tex
-%%                                 lni.bst
-%%                                 lnig.bst
 %%
 %% End of file `lni.ins'.

Modified: trunk/Master/texmf-dist/tex/latex/lni/lni.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lni/lni.cls	2025-02-07 22:15:29 UTC (rev 73763)
+++ trunk/Master/texmf-dist/tex/latex/lni/lni.cls	2025-02-07 22:16:55 UTC (rev 73764)
@@ -14,7 +14,7 @@
 %% --------| -----------------------------------------------------------------
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesClass{lni}
-    [2024/07/23 v1.10 Official class for submissions to the ``Lecture Notes
+    [2025/02/05 v2.0 Official class for submissions to the ``Lecture Notes
     in Informatics'']
 \RequirePackage{iftex}\ifluatex\else\pdfoutput=1\fi%
 \def\@clearglobaloption#1{%
@@ -49,9 +49,6 @@
 \newif\ifusecleveref
 \useclevereftrue
 \DeclareOption{nocleveref}{\useclevereffalse}
-\newif\ifusebiblatex
-\usebiblatexfalse
-\DeclareOption{biblatex}{\usebiblatextrue}
 \newif\ifcrop
 \cropfalse
 \DeclareOption{crop}{\croptrue}
@@ -260,13 +257,12 @@
 }
 \renewcommand\Large{\@setfontsize\Large{14}{17}}
 \RequirePackage[autostyle]{csquotes}
-\ifusebiblatex
-  \RequirePackage[%
-    backend=biber,% UTF-8 support
-    date=year,
-    style=LNI,    % The GI style - see https://www.ctan.org/pkg/biblatex-lni
-    natbib=true   % Required for \Citet
-  ]{biblatex}[2016-09-15]% at least version 3.6 of biblatex is required.
+\RequirePackage[%
+   backend=biber,% UTF-8 support
+   date=year,
+   style=LNI,    % The GI style - see https://www.ctan.org/pkg/biblatex-lni
+   natbib=true   % Required for \Citet
+]{biblatex}[2016-09-15]% at least version 3.6 of biblatex is required.
   % Enable hyperlinked authors when using \citeauthor
   % Source: http://tex.stackexchange.com/a/75916/9075
   \DeclareCiteCommand{\citeauthor}%
@@ -279,7 +275,6 @@
      \printtext[bibhyperref]{\printnames{labelname}}}%
     {\multicitedelim}%
     {\usebibmacro{postnote}}%
-\fi%
 \RequirePackage{amsmath}
 \RequirePackage{etoolbox}
 \RequirePackage{graphicx}
@@ -613,7 +608,7 @@
   \kern2.6\p@}
 \setlength{\parindent}{0pt}
 \setlength{\parskip}{8pt}
-\setlist{topsep=0pt,itemsep=7pt,parsep=-2pt}
+\setlist{topsep=0pt,itemsep=7pt,parsep=-2pt,leftmargin=*}
 \setlist[itemize]{labelsep=0.70cm}%Abstand zur Aufzählungsnummer
 \setlist[itemize,1]{label=$\bullet$}
 \setlist[itemize,2]{topsep=9pt}
@@ -714,14 +709,6 @@
    }%
 \fi%
 \def\and{\texorpdfstring{\unskip\hspace{-0.42em},\hspace{.6em}}{, }}%
-\ifusebiblatex
-\else
-   \iflnienglish
-      \bibliographystyle{lni}%
-   \else
-      \bibliographystyle{lnig}%
-   \fi%
-\fi%
 \newcommand*{\lni at abbrv}[1]{#1\@\xspace}
 \newcommand*{\lniabbrv}[2]{\gdef#1{\lni at abbrv{#2}}}
 \newcommand*{\lni at initialism}[1]{\textsc{#1}\xspace}
@@ -768,7 +755,7 @@
 \vfuzz \hfuzz
 \raggedbottom
 %% 
-%% Copyright (C) 2016-2023 by Gesellschaft für Informatik e.V. (GI)
+%% Copyright (C) 2016-2025 by Gesellschaft für Informatik e.V. (GI)
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License (LPPL), either
@@ -789,7 +776,5 @@
 %%                                 lni-author-template.tex
 %%                                 lni-paper-example-de.bib
 %%                                 lni-paper-example-de.tex
-%%                                 lni.bst
-%%                                 lnig.bst
 %%
 %% End of file `lni.cls'.



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