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.