diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/lni |
Initial commit
Diffstat (limited to 'macros/latex/contrib/lni')
-rw-r--r-- | macros/latex/contrib/lni/CHANGELOG.md | 89 | ||||
-rw-r--r-- | macros/latex/contrib/lni/CONTRIBUTING.md | 30 | ||||
-rw-r--r-- | macros/latex/contrib/lni/README.md | 37 | ||||
l--------- | macros/latex/contrib/lni/lni-instructions.pdf | 1 | ||||
-rw-r--r-- | macros/latex/contrib/lni/lni.dtx | 3193 | ||||
-rw-r--r-- | macros/latex/contrib/lni/lni.ins | 129 | ||||
-rw-r--r-- | macros/latex/contrib/lni/lni.pdf | bin | 0 -> 358862 bytes |
7 files changed, 3479 insertions, 0 deletions
diff --git a/macros/latex/contrib/lni/CHANGELOG.md b/macros/latex/contrib/lni/CHANGELOG.md new file mode 100644 index 0000000000..0a07eb75c5 --- /dev/null +++ b/macros/latex/contrib/lni/CHANGELOG.md @@ -0,0 +1,89 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/) +and this project adheres to [Semantic Versioning](http://semver.org/). + +## [Unreleased] + +## [1.5.0] -2019-04-04 + +### Added +- Load package `textcomp` by default and add option `upquote` to `listings` package ([#69](https://github.com/gi-ev/LNI/issues/69)) +- New option `norunningheads` to remove all running headers from the document +([#77](https://github.com/gi-ev/LNI/issues/77)) + +### Changed +- `\refname` changed to `Bibliography` for English texts + +### Fixed +- German paper example: Correct language `Java` at example listing +- Packages `hyperef`, `cleveref` and `hypcap` are always at the end of the preamble ([#71](https://github.com/gi-ev/LNI/issues/71)) +- Option `bookmarks` of `hyperref` now set at load-time. Had no effect before. +- Layout for English texts (subtitle) +- URL for GI in example file + +## [1.4.0] - 2018-01-15 + +### Added +- New option `oldfonts` to use the class file on older systems by loading the `mathptmx` font package ([#56](https://github.com/gi-ev/LNI/issues/56)) +- New macros added (taken from `emisa.dtx`) ([#57](https://github.com/gi-ev/LNI/issues/57)) +- Hint to word limit for abstract ([#60](https://github.com/gi-ev/LNI/issues/60)) +- Added full example for an article in German ([#63](https://github.com/gi-ev/LNI/issues/63)) + +### Changed +- Package `caption` is loaded in order to make the class more robust ([#59](https://github.com/gi-ev/LNI/issues/59)) + +### Fixed +- Basewidth for `lstlistings` ([#62](https://github.com/gi-ev/LNI/issues/62)) +- Adapting captions of `lstlistings` +- License statement of paper: CC-BY-SA instead of CC-BY-NC ([#67](https://github.com/gi-ev/LNI/issues/67)) + +## [1.3.0] - 2017-05-15 + +### Added +- New option `nofonts` to use the class file on older systems ([#53](https://github.com/gi-ev/LNI/issues/52)) + +### Changed +- Use more stable syntax for font loading with `fontspec` ([#54](https://github.com/gi-ev/LNI/issues/54)) + + +## [1.2.0] - 2017-05-05 + +### Added +- Quick start section for README.md ([#48](https://github.com/gi-ev/LNI/issues/48)) +- New macro `\lnidoi` to add DOI to pages (DOI provided by editor) +- General (partial) support for `XeTeX` and `LuaTeX` using the `iftex` package ([#51](https://github.com/gi-ev/LNI/issues/51)) + +### Changed +- Option `straightquotes` is set manually for package `newtxtt` to gain compatibility with versions prior to v1.05 ([#49](https://github.com/gi-ev/LNI/issues/49)) + + +## [1.1.0] - 2017-04-19 + +### Added +- New macro `\subtitle` ([#44](https://github.com/gi-ev/LNI/issues/44)) +- New keyword delimiter `\and` ([#43](https://github.com/gi-ev/LNI/issues/43)) +- New files CHANGELOG.md and CONTRIBUTING.md +- New option `crop` for crop marks +- Check for latest German hyphenation patterns ([#47](https://github.com/gi-ev/LNI/issues/47)) + +### Changed +- CTAN script to include new files +- Documentation + +### Fixed +- Definition of `\Crefname` to always get "Abb." instead of "ABB." etc. ([#45](https://github.com/gi-ev/LNI/pull/45)) + + +## [1.0.0] - 2017-04-07 +First release of the revised files + +[Unreleased]: https://github.com/gi-ev/LNI/compare/v1.4...HEAD +[1.4.0]: https://github.com/gi-ev/LNI/releases/tag/v1.5 +[1.4.0]: https://github.com/gi-ev/LNI/releases/tag/v1.4 +[1.3.0]: https://github.com/gi-ev/LNI/releases/tag/v1.3 +[1.2.0]: https://github.com/gi-ev/LNI/releases/tag/v1.2 +[1.1.0]: https://github.com/gi-ev/LNI/releases/tag/v1.1 +[1.0.0]: https://github.com/gi-ev/LNI/releases/tag/v1.0 + diff --git a/macros/latex/contrib/lni/CONTRIBUTING.md b/macros/latex/contrib/lni/CONTRIBUTING.md new file mode 100644 index 0000000000..ff718c5bd6 --- /dev/null +++ b/macros/latex/contrib/lni/CONTRIBUTING.md @@ -0,0 +1,30 @@ +# Contributing + +You can report bugs and request features using the [issues page](https://github.com/gi-ev/lni/issues). + +We love code contributions. +You can easily work on the code if you have a GitHub account ([get one](https://github.com/join)). +For that, please [fork the repository](https://help.github.com/articles/fork-a-repo/), work on the code, and submit a [pull request](https://help.github.com/articles/about-pull-requests/). + +Take a look at GitHub's excellent overview on the [GitHub flow](https://guides.github.com/introduction/flow/index.html). +The [Feature Branch Workflow](https://de.atlassian.com/git/tutorials/comparing-workflows#feature-branch-workflow) forms the basis of this kind of development. + +In other words: + +1. Fork the project +2. Clone the repo: + + git clone git@github.com:your-username/LNI.git + +3. Create a new branch `patch` (or another speaking name) + + git checkout -b patch + +3. Make your changes. +4. Commit your changes. + Thereby, try to write a [good commit message](https://github.com/joelparkerhenderson/git_commit_message). +5. Push your chaneges (to your repository) +6. [submit a pull request](https://github.com/gi-ev/lni/compare/) +7. At this point you're waiting on us. + We like to at least comment on pull requests as soon as possible. + We may suggest some changes or improvements or alternatives. diff --git a/macros/latex/contrib/lni/README.md b/macros/latex/contrib/lni/README.md new file mode 100644 index 0000000000..b850e17f65 --- /dev/null +++ b/macros/latex/contrib/lni/README.md @@ -0,0 +1,37 @@ +# lni [![Build Status](https://circleci.com/gh/gi-ev/LNI/tree/master.svg?style=shield)](https://circleci.com/gh/gi-ev/LNI/) [![CTAN](https://img.shields.io/badge/CTAN-lni-blue.svg?style=flat-square)](https://ctan.org/pkg/lni) + +``` +---------------------------------------------------------------------------- +lni -- A class for submissions to the ``Lecture Notes in Informatics'' +(c) 2016-2019 Gesellschaft für Informatik (GI) +Version: 1.5 +Maintainer: Martin Sievers +Email: martin.sievers@schoenerpublizieren.de +License: Released under the LaTeX Project Public License v1.3c or later +See: http://www.latex-project.org/lppl.txt +---------------------------------------------------------------------------- +``` + +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. +You will have to use [BibTeX](https://www.ctan.org/pkg/bibtex) as bibliography tool. +In case you want to use [biblatex](https://www.ctan.org/pkg/biblatex) and +[Biber](https://www.ctan.org/pkg/biber), read on in the documentation of this class. +You should use `pdflatex` as `xelatex` and `lualatex` lack some features of the class file. + +Stable versions are always uploaded to CTAN (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://github.com/gi-ev/LNI/blob/master/lni.pdf. +It includes a short description how to use the template and also provides trouble shooting hints. + +Please see [CHANGELOG.md](CHANGELOG.md) for a version history + + [GI]: https://www.gi.de/ + [Lecture Notes in Informatics]: https://www.gi.de/service/publikationen/lni.html diff --git a/macros/latex/contrib/lni/lni-instructions.pdf b/macros/latex/contrib/lni/lni-instructions.pdf new file mode 120000 index 0000000000..3a6a63c6cc --- /dev/null +++ b/macros/latex/contrib/lni/lni-instructions.pdf @@ -0,0 +1 @@ +lni.pdf
\ No newline at end of file diff --git a/macros/latex/contrib/lni/lni.dtx b/macros/latex/contrib/lni/lni.dtx new file mode 100644 index 0000000000..218a603e94 --- /dev/null +++ b/macros/latex/contrib/lni/lni.dtx @@ -0,0 +1,3193 @@ +% \iffalse meta-comment +%<*internal> +\iffalse +%</internal> +%<*internal> +\fi +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +%</internal> +%<*install> +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\declarepreamble\bibtexengpre +lnig.bst +Lecture Notes in Informatics Style File (english) +Version 1.0 (2017/04/07) + +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.0 (2017/04/07) + +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'' + Author:| Martin Sievers + Email:| martin.sievers@schoenerpublizieren.de +License:| Released under the LaTeX Project Public License v1.3c or later + See:| http://www.latex-project.org/lppl.txt +--------| ----------------------------------------------------------------- +\endpreamble + +\def\templatepre{% +\perCent\space !TeX encoding = UTF-8^^J% +\perCent\space !TeX program = pdflatex^^J% +\perCent\space !BIB program = bibtex^^J% +} + +\def\templatepreger{% +\perCent\space !TeX encoding = UTF-8^^J% +\perCent\space !TeX spellcheck = de_DE^^J% +} + +\postamble + +Copyright (C) 2016-2019 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 + CHANGELOG.md + and the derived files lni.pdf + lni.cls + lni-author-template.tex + lni-paper-example-de.bib + lni-paper-example-de.tex + lni.bst + lnig.bst +\endpostamble + +\usedir{tex/latex/lni} +\AddGenerationDate +\generate{ + \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> +\usedir{source/latex/lni} +\generate{ + \usepreamble\classpre + \file{\jobname.ins}{\from{\jobname.dtx}{install}} +} +\nopreamble\nopostamble +\usedir{doc/latex/lni} +\generate{ + \usepreamble\templatepre + \file{lni-author-template.tex}{\from{\jobname.dtx}{template}} +} +\generate{ + \file{lni-paper-example-de.bib}{\from{\jobname.dtx}{exampledebib}} +} +\generate{ + \usepreamble\templatepreger + \file{lni-paper-example-de.tex}{\from{\jobname.dtx}{exampledetex}} +} +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup +\fi +%</internal> +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{lni.dtx} +%</driver> +%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%<class>\ProvidesClass{lni} +%<*class> + [2019/04/04 v1.5 Official class for submissions to the ``Lecture Notes + in Informatics''] +%</class> +%<*driver> +\documentclass[a4paper]{ltxdoc} +\usepackage[ngerman,english]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{libertine} +\usepackage[scaled=0.8]{beramono} +\usepackage[% + final,% + tracking=smallcaps,% + expansion=alltext,% + protrusion=alltext-nott]{microtype}% +\SetTracking{encoding=*,shape=sc}{50}% +\usepackage{textcomp} +\usepackage{upquote} +\usepackage[final]{listings} +\usepackage{csquotes} +\usepackage[dvipsnames]{xcolor} +\usepackage{hologo} +\newcommand*{\MiKTeX}{\hologo{MiKTeX}} +\usepackage[% + pdftitle={lni: Official LaTeX class for submissions to the ``Lecture Notes in + Informatics'', published by the ``Gesellschaft für Informatik e.\,V.'' (GI)}, + pdfauthor={Martin Sievers}, + urlcolor=blue,% + linktoc=both,% + colorlinks=true]{hyperref} +\usepackage[nameinlink,capitalise]{cleveref} + +\DeclareFontFamily{U}{MnSymbolC}{} +\DeclareSymbolFont{MnSyC}{U}{MnSymbolC}{m}{n} +\DeclareFontShape{U}{MnSymbolC}{m}{n}{ + <-6> MnSymbolC5 + <6-7> MnSymbolC6 + <7-8> MnSymbolC7 + <8-9> MnSymbolC8 + <9-10> MnSymbolC9 + <10-12> MnSymbolC10 + <12-> MnSymbolC12% +}{} +\DeclareMathSymbol{\powerset}{\mathord}{MnSyC}{180} + +\newcommand{\lni}{\texttt{lni}} +\newcommand{\LNI}{\emph{Lecture Notes in Informatics}} +\makeatletter +\newcommand*\DescribeOption{% +\leavevmode% +\@bsphack% +\begingroup% + \MakePrivateLetters% + \Describe@Option% +}% +\newcommand*\Describe@Option[1]{% + \endgroup% +\marginpar{% + \raggedleft% + \PrintDescribeEnv{#1}% +}% +\SpecialOptionIndex{#1}% +\@esphack% +\ignorespaces% +}% +\newcommand*\SpecialOptionIndex[1]{% +\@bsphack% +\index{% + #1\actualchar{\protect\ttfamily#1} (option)\encapchar usage% +}% +\index{% + options:\levelchar#1\actualchar{\protect\ttfamily#1}% + \encapchar usage% +}% +\@esphack% +}% +\makeatother +\lstset{ + basicstyle = \small\ttfamily, + gobble = 2, + keywordstyle = \color{blue}\bfseries, + language = [LaTeX]{TeX}, + moretexcs = {, + addbibresource,authorrunning,% + email,lnidoi, + ExecuteBibliographyOptions,includegraphics,printbibliography, + } + frame = single, + backgroundcolor = \color{yellow!60}, + framesep = 5pt, + literate={Ö}{{\"O}}1 {Ä}{{\"A}}1 {Ü}{{\"U}}1 {ß}{{\ss}}1 {ü}{{\"u}}1 {ä}{{\"a}}1 {ö}{{\"o}}1 +}% +\lstnewenvironment{examplecode}[1][] +{\lstset{#1}} +{} +\providecommand*\env[1]{\texttt{#1}} +\providecommand*\file[1]{\texttt{#1}} +\providecommand*\opt[1]{\texttt{#1}} +\providecommand*\pkg[1]{\textsf{#1}} +\OnlyDescription %nur Anleitung (ohne Index und History) +\CodelineIndex %kein Index wenn auskommentiert +\EnableCrossrefs %kein Index wenn auskommentiert +\RecordChanges %keine History wenn auskommentiert +\begin{document} + \DocInput{\jobname.dtx} +\end{document} +%</driver> +% \fi +% \CheckSum{0} +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v1.0}{2017/04/07}{Official release of revised version} +% \changes{v1.1}{2017/04/08}{Added macros \cs{subtitle} and keyword delimiter +% \cs{add}} +% \changes{v1.1}{2017/04/08}{Fixed bug with \cs{Crefname}} +% \changes{v1.1}{2017/04/08}{Updated documentation and bundle structure} +% \changes{v1.1}{2017/04/12}{Changed spacing for \cs{subtitle}} +% \changes{v1.1}{2017/04/18}{Added check for ngerman-x-latest patterns} +% \changes{v1.1}{2017/04/19}{Added option \opt{crop}} +% \changes{v1.2}{2017/04/26}{Set option \opt{straighquotes} for \pkg{newtxtt} +% manually to gain compatibility with version prior to v1.05} +% \changes{v1.2}{2017/04/27}{Added \pkg{iftex} to check for pdflatex} +% \changes{v1.2}{2017/05/04}{Added (partial) support for XeTeX and LuaTeX} +% \changes{v1.3}{2017/05/04}{Added option \opt{nofonts} to suppress font +% loading completely} +% \changes{v1.3}{2017/05/08}{Changed syntax for \pkg{fontspec}} +% \changes{v1.4}{2017/05/27}{Added new macros taken from the EMISA class file} +% \changes{v1.4}{2017/05/27}{Added option \opt{oldfonts} to use a font package +% available} +% \changes{v1.4}{2017/07/26}{Added package \pkg{caption} and changed all +% \cs{fontsize} calls to nativ \LaTeX{} macros} +% \changes{v1.4}{2017/09/11}{Fixed basewidth for \env{lstlistings}} +% \changes{v1.4}{2017/09/29}{Fixed font size for \cs{Large}} +% \changes{v1.4}{2017/11/08}{Added full example for an article in German} +% \changes{v1.4}{2017/11/08}{Adapting captions of \env{lstlistings}} +% \changes{v1.4}{2017/11/08}{Fix font size bug regarding the running header +% and the captions: \cs{small} was redefined, so we need an \cs{oldsmall} here} +% \changes{v1.5}{2018/09/11}{Postpone loading of \pkg{cleveref}} +% \changes{v1.5}{2018/09/11}{Load \pkg{textcomp} by default and add option +% \opt{upquote} to \pkg{listings}} +% \changes{v1.5}{2019/02/13}{Fix layout for English texts} +% \changes{v1.5}{2019/02/13}{Changed \cs{refname} for English texts} +% \changes{v1.5}{2019/02/20}{New option \opt{norunningheads}} +% +% \GetFileInfo{\jobname.dtx} +% \DoNotIndex{\newcommand,\newenvironment} +% +% \title{\textsf{lni} -- Official class for submissions to the\\% +% ``Lecture Notes in Informatics''\thanks{This file describes version +% \fileversion, last revised \filedate.}} +% \author{Martin Sievers\setcounter{footnote}{6}\thanks{Email: +% martin.sievers@schoenerpublizieren.de}} +% \date{Released \filedate} +% +% \maketitle +% +% \begin{abstract} +% \noindent After several years the \lni{} bundle has been updated. The +% resulting new version fixes some long-standing bugs, solves problems and +% supports modern packages like \pkg{biblatex} and \pkg{microtype}. It has been +% put into one DTX file to make maintaining and distributing via CTAN a bit +% easier. +% \end{abstract} +% +% \section{Introduction} +% \LaTeX{} templates are often long-lasting. Even if they use meanwhile +% deprecated packages they are often passed from one generation of authors to +% the next. +% +% The Gesellschaft für Informatik~e.\,V. (GI) thankfully realized, that their +% bundle should be technologically +% modernized while the general layout remains the same. +% +% Based on the existing class and bib files I set-up a DTX file and started +% reworking the source code. Editors and authors suggested different additions +% and changes, which I tried to incoporate without changing the existing +% mechanisms too much. +% +% This is the first public release. I would to thank especially +% \href{https://github.com/koppor/}{Oliver Kopp} and +% \href{https://www.fernuni-hagen.de/evis/team/stefan.strecker.shtml}{Stefan +% Strecker} and his team for their suggestions and tests. +% +% \section{Installation} +% The \lni{} bundle is currently distributed via +% \href{https://github.com/gi-ev/LNI}{GitHub}, the +% \href{https://www.gi.de/service/publikationen/lni/autorenrichtlinien.html} +% {GI website} and (preferably) \href{https://www.ctan.org/pkg/lni}{CTAN}. +% The later is the basis for all updates of the two main \TeX{} distributions +% \MiKTeX{} and \TeX{}~Live. Thus the easiest way to get all files needed to +% typeset an article for the \LNI{} is to use the package manager of your +% distribution. +% +% 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. +% Don't forget to update your file name database. +% \newpage +% \section{Usage} +% To use the predefined layout for a (German) submission to the \LNI{} just +% load the class file as usual with \cs{documentclass\{lni\}}. +% +% The class file loads a bunch of packages which are all part of modern \TeX{} +% distributions. Therefore, if you are confronted +% with a missing package, please try to download and install it using your +% distribution's package manager. Alternatively go to +% \href{http://www.ctan.org}{CTAN} to download missing packages. +% +% Please note, that the support of \hologo{XeLaTeX} and \hologo{LuaLaTeX} is +% only partial. For example the mono font is not the same. Moreover +% \hologo{pdfLaTeX} is a \TeX{} engine used by the publishers. Therefore it is +% strongly recommended to use \hologo{pdfLaTeX}. +% +% \subsection{Options}\label{sec:options} +% Although the class file includes all layout information for a submission to +% the \LNI{}, there are options to adapt the output one way or another. +% +% \DescribeOption{english}A document loading the \lni{} class file uses German +% language adoptions by default. To switch to English, just load the class with +% option \opt{english}. +% +% The language influences not only the hyphenation patterns and terms used in +% the text, but also the choice of a corresponding \BibTeX{} file +% (cf.~\cref{sec:bibliography}). +% +% \DescribeOption{utf8}\DescribeOption{latin1}\DescribeOption{applemac}Although +% nowadays all major plattforms support and widely use UTF-8 encoding for +% text files, there might be some need to change the input encoding the +% \LaTeX{} document uses. +% +% This can be achieved by giving one of the options \opt{utf8} (which is the +% default), \opt{latin1} or \opt{applemac} to the document class. Using UTF-8 +% is strongly recommended. Please note, that currently the bib file is supposed +% to use the same encoding. +% +% \DescribeOption{biblatex}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 \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\space(new in v1.1)}% +% Option \opt{crop} gives you some crop marks (using the package \pkg{crop}) to +% better illustrate the final +% result of your article. +% +% \DescribeOption{nocleveref}When referencing figures, one has to type +% \texttt{Figure\textasciitilde}\cs{ref\marg{label}}. The package \pkg{cleveref} +% reduces the effort by offering the command \cs{cref\marg{label}}. This can be +% used with all floating objects. The package is loaded as default. In case it +% causes issues, one can disable it using with the \opt{nocleveref} option. +% +% \DescribeOption{nohyperref}\pkg{hyperref} is used for colored hyperlinks +% within the articles. If you consider problems or just do not want that +% feature, you can disable it by using the option \opt{nohyperref}. +% +% \DescribeOption{nofonts\space(new in v1.3, deprecated in v1.4)}On old systems +% you might not have installed the New TX fonts. If for whatever reason the +% \opt{oldfonts} option +% does not work for you, you can activate option \opt{nofonts}. This allows to +% suppress font loading completely using the engines standard fonts instead. +% Usually there should be no need to do so. Please note, that your output will +% differ from the publishers'. +% +% \DescribeOption{oldfonts\space(new in v1.4)}On older systems you might not +% have installed the New TX fonts. Therefore option \opt{oldfonts} allows to +% to load the package \pkg{mathptmx} instead of the New TX fonts. The output +% will be in accordance to (or at least near) the publisher's requirements. +% +% \DescribeOption{norunningheads\space(new in v1.5)}To easily remove all running +% headers from your document, you can use the option \opt{norunningheads}. +% \newpage +% \section{Setting up a document} +% You can use the file \file{lni-author-template.tex} as a starting point +% for setting up a document for submission. The \lni{} class uses the standard +% ways to build an article. +% +% \subsection{Special meta data}\label{sec:metadata} +% There is not just one \enquote{\TeX} and one \enquote{bibliography tool}, but +% many different ways to transform a .tex file into a PDF. +% Some \TeX{} editors like \texttt{TeXstudio}, \texttt{TeXmaker} and +% \texttt{TeXshop} support a special set of meta data to tell the editor, how +% to deal with a concrete document. +% +% A typical example looks like: +% \begin{examplecode} +% % !TeX program = pdflatex +% % !BIB program = bibtex8 +% % !TeX encoding = UTF-8 +% !TeX spellcheck = de_DE +% \documentclass[english]{lni} +% \end{examplecode} +% +% \subsection{Special macros for editors} +% \DescribeMacro{\startpage}\DescribeMacro{\editor}\DescribeMacro{\booktitle}% +% \DescribeMacro{\year}In addition to the macros stated in +% \cref{sec:titlepage} for authors, there are special editor macros to +% influence the layout of the article: +% \begin{itemize} +% \item\cs{startpage} determines the starting page of the article. This +% should always be an odd (right) page. +% \item\cs{editor} states the name of the editor(s) +% \item\cs{booktitle} holds the name of a conference +% \item\cs{year} can be used to set the year +% \end{itemize} +% +% \subsection{Title page}\label{sec:titlepage} +% \DescribeMacro{\title}% +% \DescribeMacro{\subtitle\space(new in v1.1)}% +% The title of your work is given using the \cs{title} macro. In addition to +% the title itself, you can add a short title to be used +% in the header of a page: +% \begin{examplecode}[label={lst:title}] +% \title[Short title]{Title} +% \end{examplecode} +% +% You can also add a subtitle by \cs{substitle\marg{subtitle}}. +% +% \DescribeMacro{\author}\DescribeMacro{\email}\DescribeMacro{\footnote}% +% \DescribeMacro{\and}% +% The authors of an article are +% given using the standard \cs{author} macro. Multiple authors are separated +% by \cs{and}; affiliations have to be added with +% \cs{footnote\marg{affiliations}} where you can use +% \cs{email\marg{email address}} for the email address of an author: +% \begin{examplecode}[label={lst:author}] +% \author[Author 1 \and Author 2]{% +% Author 1\footnote{Affiliations including \email{email@author1}} \and% +% Author 2\footnote{Affiliations including \email{email@author2}}} +% \end{examplecode} +% In case the authors are too long for the page header, see +% \cref{sec:pageheader} of how to shorten the authors for the page header. +% +% \DescribeMacro{\lnidoi\space(new in v1.2)}% +% LNI provides a DOI for each paper. In case, the DOI is known, it can be +% specified using the \cs{lnidoi} macro. +% \begin{examplecode}[label={lst:lnidoi}] +% \lnidoi{18.18420/se2016_01} +% \end{examplecode} +% +% Finally \cs{maketitle} will output the formatted title page. +% +% \subsection{Abstract and keywords} +% \DescribeEnv{abstract}\DescribeEnv{keywords}% +% \DescribeMacro{\and\space(new in v1.1)}% +% Each article should start with a short (70 to 150 words) abstract and some +% keywords. Please use the environments \env{abstract} and \env{keywords} for +% that purpose: +% \begin{examplecode} +% \begin{abstract} +% Tell the reader what your article is about +% \end{abstract} +% \begin{keywords} +% Give some keywords to categorize your article. You can use \and between two +% keywords to get the correct delimiter (semicolon plus space) automatically. +% \end{keywords} +% \end{examplecode} +% +% \subsection{Page header}\label{sec:pageheader} +% The template automatically sets the page headers according to the +% requirements of \LNI. From page~2 onwards, the title and the authors are +% printed. These information has to stay in one line. In case the title is too +% long, use the optional argument for \cs{title}: +% \begin{examplecode} +% \title[Short title]{Title} +% \end{examplecode} +% +% \DescribeMacro{\authorrunning}% +% In case there are many authors on a paper, they might not fit into the paper. +% For that purpose, additionally use \cs{authorrunning}: +% \begin{examplecode} +% \author[Firstname1 Lastname1 \and Firstname2 Lastname2% +% \and Firstname3 Lastname3]{Firstname1 Lastname1\footnote{...}% +% \and Firstname2 Lastname2\footnote{...}% +% \and Firstname3 Lastname3\footnote{...}}% +% \authorrunning{Lastname1 et al.} +% \end{examplecode} +% +% \subsection{Main text} +% \subsubsection{Headings} +% \DescribeMacro{\section}\DescribeMacro{\subsection}% +% \DescribeMacro{\subsubsection} +% You can use the standard macros \cs{section}, \cs{subsection}, \dots{} for +% sectioning your text. +% +% \subsubsection{Footnotes} +% \DescribeMacro{\footnote}% +% For adding a footnote, just use \cs{footnote\marg{footnote text}} where +% needed. Please note, that the footnote counter is automatically set to the +% correct value at the beginning of your text, i.\,e. it respects the number +% of affiliations given on the title page. +% +% \subsubsection{Lists} +% \DescribeEnv{itemize}\DescribeEnv{enumerate}% +% The \lni{} class redefines the standard lists environments \env{itemize} and +% \env{enumerate} to meet the requirements of the \LNI{}. +% +% Lists can be filled as usual by adding \cs{item} macros. +% +% \subsubsection{Floating objects} +% \DescribeEnv{figure}\DescribeEnv{table}% +% The environments \env{figure} and \env{table} can be used the standard way to +% include graphics or tables resp. +% +% However, please note, that the default placement parameters are changed to +% \opt{htbp} by the class \lni{}. If you need some local adjustment, please use +% the optional argument of both environments (cf.~Listing~\ref{lst:figure}). +% +% \DescribeMacro{\caption}\DescribeMacro{\label} +% A caption should be added by \cs{caption\marg{caption text}}, followed +% immediately by a \cs{label\marg{unique label}} entry. +% \begin{examplecode}[label={lst:figure}] +% \begin{figure}[tb] +% \includegraphics{...} +% \caption{...} +% \label{...} +% \end{figure} +% \end{examplecode} +% +% If you want to center floats, please \emph{do not} use the \env{center} +% environment, but the macro \cs{centering}, which does not add extra white +% space (cf.~Listing~\ref{lst:table}). +% \begin{examplecode}[label={lst:table}] +% \begin{table} +% \centering +% \begin{tabular}{lll} +% ... +% \end{tabular} +% \caption{...} +% \label{...} +% \end{table} +% \end{examplecode} +% +% \subsubsection{Listings\,/\,Source code} +% The \lni{} bundle loads the \pkg{verbatim} and \pkg{listings} package. While +% the former is there for compatability, the later is the standard way of +% integrating source code listings into a \LaTeX{} document. +% +% However, there are currently no config files shipped with the \lni{} bundle. +% Please consult the documentation for help on setting up \pkg{listings} for a +% specific programming language. +% +% \subsubsection{Math} +% If you need mathematics, you can load packages \pkg{amsmath} and +% \pkg{mathtools} for +% additional features. The \lni{} class offers by default the command +% \cs{powerset} to render the powerset symbol correctly as $\powerset$ and not +% as Weierstrass p ($\wp$). +% +% \subsubsection{Abbreviations and initialisms} +% \DescribeMacro{\eg}\DescribeMacro{\ie}\DescribeMacro{\cf}% +% \DescribeMacro{\etal}% +% To achieve consistent typesetting of common abbreviations, macros are +% predefined by the class. These macros should \emph{consistently} being used +% instead of writing the plain version. For example use \verb|\eg| rather than +% {\verb|e.g.,|}. The macros take care of spacing within and after the +% abbreviations. +% \begin{itemize} +% \item \cs{eg} for e.\,g. +% \item \cs{ie} for i.\,e. +% \item \cs{cf} for cf. +% \item \cs{etal} for et~al. +% \end{itemize} +% +% \DescribeMacro{\OMG}\DescribeMacro{\BPM}\DescribeMacro{\BPMN}\DescribeMacro{\UML}% +% In addition to common abbreviations, further initialisms are provided by the +% class for convenience and for a consistent visual appearance. Note that the +% class uses \textsc{smallcaps} for typesetting initialisms. The list of +% predefined initialisms comprises: +% +% \begin{itemize} +% \item \cs{OMG} for \textsc{omg} (Object Management Group). +% \item \cs{BPM} for \textsc{bpm} (Business Process Management). +% \item \cs{BPMN} for \textsc{bpmn} (Business Process Model and Notation). +% \item \cs{BPEL} for \textsc{bpel} (Business Process Execution Language). +% \item \cs{UML} for \textsc{uml} (Unified Modelling Language). +% \end{itemize} +% +% \DescribeMacro{\lniinitialism} You can add your own initialisms by stating +% \cs{lniinitialism\marg{\textbackslash initialism\_macro}\marg{text}} in the +% 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 option +% \opt{biblatex} (cf.~\cref{sec:options}) you can easily switch to the modern +% \pkg{biblatex} package. However, you have to add information on the bib +% file(s) in your preamble using \cs{addbibresource\marg{Bib file(s)}} and call +% \cs{printbibliography} where you want the bibliography to appear. +% +% Please note, that the \lni{} class sets +% \texttt{biber} as the default bibliography tool. \texttt{biber} is part of +% both major \TeX{} distributions and can easily be used within most \TeX{} +% editors, e.\,g. by using special meta data as described in +% \cref{sec:metadata}. +% +% If you want to pass settings to \pkg{biblatex} you can use a config +% file \texttt{biblatex.cfg}, for additional options please use the macro +% \cs{ExecuteBibliographyOptions}. Please consult the +% \href{http://texdoc.net/pkg/biblatex}{package's documentation} for +% more information. +% \begin{examplecode} +% % !TeX program = pdflatex +% % !BIB program = biber +% \documentclass[biblatex]{lni} +% ... +% \ExecuteBibliographyOptions{...} +% \addbibresource{FILENAME.bib} +% ... +% \begin{document} +% ... +% \printbibliography +% ... +% \end{document} +% \end{examplecode} +% +% \section{Trouble shooting} +% This section lists the most common issues when using this template. For more +% help, please head to +% \href{https://github.com/egeerardyn/awesome-LaTeX/blob/master/README.md}% +% {the awesome \LaTeX{} list}. +% +% \begin{itemize} +% \item If the compiler error is\\ +% \texttt{!pdfTeX error (font expansion): auto +% expansion is only possible with scalable fonts.},\\% +% then you have to install the +% \pkg{cm-super} package. Afterwards, run \texttt{initexmf --mkmaps} on the +% command line. A longer discussion is available at +% \url{http://tex.stackexchange.com/a/324972/9075}. +% \item If the compiler error is\\ +% \texttt{!LaTeX Error: Command \textbackslash +% openbox already defined.},\\ +% insert\\ +% \cs{let}\cs{openbox}\cs{relax} before \cs{usepackage\{amsthm\}}. +% \item If the compiler error is\\ +% \texttt{!Undefined control sequence. l.84 +% \textbackslash ulp@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@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} +% If you find a bug or have a feature request, please open an ``issue'' at the +% \href{https://github.com/gi-ev/LNI/issues}{GitHub website}. +% +% \StopEventually{^^A +% \PrintChanges +% \PrintIndex +% } +% +% \section{Implementation} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% \begin{macrocode} +\def\@clearglobaloption#1{% + \def\@tempa{#1}% + \def\@tempb{\@gobble}% + \@for\next:=\@classoptionslist\do + {\ifx\next\@tempa + \message{Cleared option \next\space from global list}% + \else + \edef\@tempb{\@tempb,\next}% + \fi}% + \let\@classoptionslist\@tempb + \expandafter\ifx\@tempb\@gobble + \let\@classoptionslist\@empty + \fi} +% +\DeclareOption{latin1}{\PassOptionsToPackage{latin1}{inputenc}} +\DeclareOption{utf8}{\PassOptionsToPackage{utf8}{inputenc}} +\DeclareOption{ansinew}{\PassOptionsToPackage{ansinew}{inputenc}} +\newif\iflnienglish +\lnienglishfalse +\DeclareOption{english}{\lnienglishtrue\@clearglobaloption{english}} +\newif\ifusehyperref +\usehyperreftrue +\DeclareOption{nohyperref}{\usehyperreffalse} +\newif\ifusecleveref +\useclevereftrue +\DeclareOption{nocleveref}{\useclevereffalse} +\newif\ifusebiblatex +\usebiblatexfalse +\DeclareOption{biblatex}{\usebiblatextrue} +\newif\ifcrop +\cropfalse +\DeclareOption{crop}{\croptrue} +\newif\ifnofonts +\nofontsfalse +\DeclareOption{nofonts}{\nofontstrue\autofontsfalse} +\newif\ifoldfonts +\oldfontsfalse +\DeclareOption{oldfonts}{\oldfontstrue\autofontsfalse} +\newif\ifautofonts +\autofontstrue +\newif\ifnorunningheads +\DeclareOption{norunningheads}{\norunningheadstrue} +\ExecuteOptions{utf8} +\DeclareOption*{\ClassWarning{Option `\CurrentOption` is not supported!}} +\ProcessOptions\relax +% +\RequirePackage{iftex} +\ifPDFTeX + \RequirePackage{hyphsubst} + \HyphSubstIfExists{ngerman-x-latest}% + {\HyphSubstLet{ngerman}{ngerman-x-latest}% + \ClassInfo{lni}{Using latest German hyphenation patterns}}% + {\ClassWarning{lni}{Latest German hyphenation patterns could not be found!% + \MessageBreak If you write a German article you should check your% + installation}}% +\fi% +\LoadClass[10pt,twoside,a4paper,fleqn]{article} +\ifPDFTeX + \RequirePackage{cmap} + \RequirePackage{inputenc} + \RequirePackage[T1]{fontenc} + \RequirePackage[full]{textcomp} +\fi% +% +\iflnienglish + \RequirePackage[ngerman,english]{babel} +\else + \RequirePackage[english,ngerman]{babel} +\fi% +% Hint by http://tex.stackexchange.com/a/321067/9075 -> enable "= as dashes +\useshorthands*{"} +\addto\extrasenglish{\languageshorthands{ngerman}} +% \end{macrocode} +% Define a modern variant of Times as the main font +% \begin{macrocode} +\ifautofonts + \ClassInfo{lni}{*******************************************************} + \MessageBreak + \ClassInfo{lni}{Checking for fonts ...} + \ClassInfo{lni}{*******************************************************} + \ifPDFTeX + \IfFileExists{newtxtext.sty} + {% + \RequirePackage{newtxtext} + \RequirePackage{newtxmath} + \RequirePackage[zerostyle=b,scaled=.9]{newtxtt} +% \end{macrocode} +% For compatibility with version of \pkg{newtxtt} prior to v1.05 we set the +% option \opt{straightquotes} manually for recent versions +% \begin{macrocode} + \@ifpackagelater{newtxtt}{2014/11/18}% + {\txtt@upqtrue}% + {\ClassWarning{lni}{You are using an old version of + `newtxtt'.\MessageBreak + Option `straightquotes' will not be used!}}% +% \end{macrocode} +% \begin{macrocode} + }% + {\IfFileExists{mathptmx.sty} + {\oldfontstrue}% + {\nofontstrue}% + }% +% \end{macrocode} +% for \hologo{XeTeX} or \hologo{LuaTeX} we use \pkg{fontspec} +% \begin{macrocode} + \else% + \IfFileExists{newtxmath.sty} + {\RequirePackage{newtxmath}}% + {}% + \RequirePackage[no-math]{fontspec} + \IfFontExistsTF{texgyretrmes-regular.otf} + {% + \setmainfont{texgyretermes}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + Ligatures=TeX + ] + }% + {\IfFileExists{mathptmx.sty} + {\oldfontstrue}% + {\nofontstrue}% + }% + \fi% +\fi% +\ifoldfonts + \RequirePackage{mathptmx} +\else% + \ifnofonts % nofonts activated + \ClassWarning{lni}{Option `nofonts' set! I will use standard fonts + \MessageBreak + instead of the New TX fonts. Your document will NOT look like the + \MessageBreak + final result for publication. This should only be used if you have + \MessageBreak + no possibility to install fonts or upgrade your TeX installation!}% + \fi% +\fi% +% \begin{macrocode} +\ifPDFTeX + \RequirePackage[% + final,% + tracking=smallcaps,% + expansion=alltext,% + protrusion=alltext-nott]{microtype}% +\else + \RequirePackage[% + final,% + protrusion=alltext-nott]{microtype}% +\fi% +\SetTracking{encoding=*,shape=sc}{50}% +% \end{macrocode} +% Introduce \cs{powerset} - hint by \url{http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=136492&post_id=997377} +% \begin{macrocode} +\DeclareFontFamily{U}{MnSymbolC}{} +\DeclareSymbolFont{MnSyC}{U}{MnSymbolC}{m}{n} +\DeclareFontShape{U}{MnSymbolC}{m}{n}{ + <-6> MnSymbolC5 + <6-7> MnSymbolC6 + <7-8> MnSymbolC7 + <8-9> MnSymbolC8 + <9-10> MnSymbolC9 + <10-12> MnSymbolC10 + <12-> MnSymbolC12% +}{} +\DeclareMathSymbol{\powerset}{\mathord}{MnSyC}{180} +% \end{macrocode} +% Support for CC icons +\RequirePackage{ccicons} +% Support for \cs{ifdefempty} +\RequirePackage{etoolbox} +% Satzspiegel +% \begin{macrocode} +\newlength{\doihoffset} +\newlength{\doivoffset} +\ifcrop + \RequirePackage[ + paperheight=23.5cm,paperwidth=15.5cm, + total={12.6cm,19.2cm}, + includehead, + headheight=20.39pt, + headsep=.31cm, + centering] + {geometry} + \RequirePackage[a4,center,cam,info]{crop} + \renewcommand*\CROP@@info{{% + \global\advance\CROP@index\@ne + \def\x{\discretionary{}{}{\hbox{\kern.5em---\kern.5em}}}% + \advance\paperwidth-20\p@ + \dimen@4pt + \ifx\CROP@pagecolor\@empty + \else + \advance\dimen@\CROP@overlap + \fi + \hb@xt@\z@{% + \hss + \vbox to\z@{% + \centering + \hsize\paperwidth + \vss + \normalfont + \normalsize + \expandafter\csname\CROP@font\endcsname{% + ``\jobname''\x + \the\@rigyear/\the\month/\the\day\x + \CROP@time\x + page\kern.5em\thepage\x + \#\the\CROP@index + \strut + }% + \vskip\dimen@ + }% + \hss + }% + }}% + \setlength{\doihoffset}{1.45cm} + \setlength{\doivoffset}{1.2cm} +\else + \RequirePackage[ + total={12.6cm,19.2cm}, + includehead, + headheight=20.39pt, + headsep=.31cm, + centering] + {geometry} + \setlength{\doihoffset}{4.2cm} + \setlength{\doivoffset}{4.3cm} +\fi% +% \end{macrocode} +% We change \cs{small} and \cs{Large} to get the correct baseline skips and add +% an \cs{oldsmall} +% \begin{macrocode} +\let\oldsmall\small% +\renewcommand\small{% + \@setfontsize\small\@ixpt{10}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\Large{\@setfontsize\Large{14}{17}} +% \end{macrocode} +% \begin{macrocode} +\RequirePackage[autostyle]{csquotes} +\ifusebiblatex + \RequirePackage[% + backend=biber,% UTF-8 support + 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} + % Enable hyperlinked authors when using \citeauthor + % Source: http://tex.stackexchange.com/a/75916/9075 + \DeclareCiteCommand{\citeauthor}% + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}}% + {\ifciteindex% + {\indexnames{labelname}}% + {}% + \printtext[bibhyperref]{\printnames{labelname}}}% + {\multicitedelim}% + {\usebibmacro{postnote}}% +% \end{macro} +% \begin{macrocode} +\fi% +% \end{macrocode} +% \begin{macrocode} +\RequirePackage{graphicx} +\RequirePackage{eso-pic} +\RequirePackage{grffile} +\RequirePackage{fancyhdr} +\RequirePackage{listings} +% \end{macrocode} +% We fix the basewidth for lstlistings: +% The default setting of listings with ``fixed columns'' has a space 0.6em +% wide, while the characters in TX Typewriter (as in Computer Modern +% Typewriter) are 0.5em wide. +% Source: https://tex.stackexchange.com/a/179072/9075 +% \begin{macrocode} +\lstset{% + basicstyle=\ttfamily,% + columns=fixed,% + basewidth=.5em,% + xleftmargin=0.5cm,% + captionpos=b,% + upquote}% +% \end{macrocode} +% Ragged bottom -- verhindert die Ausdehnung der Seite = Veränderung der +% Abstände +% \begin{macrocode} +\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil +\global\let\@textbottom\relax}} +% \end{macrocode} +% Seitenzahlen -- Größe der Box +% \begin{macrocode} +\renewcommand\@pnumwidth{3em} +\renewcommand\@tocrmarg{3.5em} +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +% \end{macrocode} +% \begin{macro}{\title} +% \begin{macrocode} +\renewcommand{\title}{\@dblarg\@@title} +\def\@@title[#1]#2{\gdef\@shorttitle{#1}\gdef\@title{#2}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\subtitle} +% \begin{macrocode} +\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\author} +% \begin{macrocode} +\renewcommand{\author}{\@dblarg\@@author} +\def\@@author[#1]#2{\gdef\@shortauthor{{\let\footnote\@gobble% + \def\and{\unskip,\ }#1}}\gdef\@author{#2}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\authorrunning} +% \begin{macrocode} +\newcommand{\authorrunning}[1]{% + \fancyhead[LE]{\hspace{0.05cm}\oldsmall\thepage\hspace{5pt}#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\email} +% \begin{macrocode} +\newcommand*{\email}[1]{{\urlstyle{same}\protect\url{#1}}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\lnidoi} +% \begin{macrocode} +\newcommand{\@lnidoi}{} +\newcommand{\lnidoi}[1]{\gdef\@lnidoi{#1}} +% \end{macrocode} +% \end{macro} +% Title: Kopie aus article.cls mit anderem \thispagestyle +% \begin{macrocode} +\renewcommand\maketitle{\par% +\begingroup + \renewcommand\thefootnote{\@arabic\c@footnote}% + \def\@makefnmark% keine Einrückung der Fußnoten eingestellt + {\@textsuperscript{\normalfont\@thefnmark}}% + \long\def\@makefntext##1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em + \parshape \@ne 0.15cm \@tempdima}% + \par\parindent 0.3cm \noindent + \hb@xt@\z@{\hss\@textsuperscript{\normalfont\@thefnmark}\,}##1} + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi% + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi% + \ifnorunningheads + \thispagestyle{empty} + \else + \thispagestyle{plain} + \fi% + \@thanks + \endgroup + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +% \end{macrocode} +% \begin{macrocode} +\def\@maketitle{% + \newpage + \null + \begin{center}% + \vskip -24pt% Abstand vor dem Titel + \raggedright% Linksbündig + \let\footnote\thanks + {\Large\bfseries\@title\par}% + \ifx\@subtitle\empty\else + \ifx\@subtitle\undefined\else + \vskip 16pt + {\normalsize\bfseries\@subtitle}% + \fi% + \fi% + \vskip 19pt% Abstand nach dem Titel + {\normalsize% + \lineskip .5em% + \@author + \par}% + \vskip 28pt% Abstand vor dem Abstract + \end{center}% +% output CC license and DOI (if it exists) + \AddToShipoutPictureBG*{\AtPageLowerLeft{% + \put(\LenToUnit{\the\doihoffset},\LenToUnit{\the\doivoffset}){% + \ifusehyperref + \href{https://creativecommons.org/licenses/by-sa/4.0/}{\ccbysa} + \else + \ccbysa + \fi + \ifdefempty{\@lnidoi}{}{ + \footnotesize + \ifusehyperref + \href{https://doi.org/\@lnidoi}{doi:\@lnidoi} + \else + doi:\@lnidoi + \fi% + } + } + }} + \par +}% +% \end{macrocode} +% \begin{environment}{abstract} +% \begin{macrocode} +\renewenvironment*{abstract}{% + \renewcommand{\abstractname}{Abstract}% + \small\noindent\ignorespaces{\bfseries\abstractname:\ }% +}{\endquotation} +% \end{macrocode} +% \end{environment} +% \begin{environment}{keywords} +% \begin{macrocode} +\newif\ifkeywords +\newenvironment{keywords}% + {\global\keywordstrue\small% + \def\and{\unskip;\space}% + \noindent\ignorespaces{\bfseries Keywords:\ }}% + {\global\keywordsfalse} +\let\@RIGsection\section +\pretocmd\@startsection{\ifkeywords\ClassError{lni}{keywords is an environment, not a macro}% + {Please change \string\keywords\space to an environment}\keywordsfalse\fi}{}{} +% \end{macrocode} +% \end{environment} +% Section headings +% \begin{macrocode} +\renewcommand{\section}{\@startsection{section}{1}{\z@}% + {-16\p@ \@plus -4\p@ \@minus -4\p@}{5\p@ \@plus 4\p@ \@minus + 4\p@}{\large\bfseries}} +\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {-16\p@ \@plus -4\p@ \@minus -4\p@}{8\p@ \@plus 4\p@ \@minus + 4\p@}{\normalsize\bfseries}} +% \end{macrocode} +% Bildunterschriften +% \begin{macrocode} +\RequirePackage{caption} +\DeclareCaptionFont{oldsmall}{\oldsmall} +\captionsetup[figure]{style=base,skip=4pt,font=oldsmall} +\captionsetup[table]{style=base,skip=6pt,font=oldsmall} +\captionsetup[lstlisting]{style=base,skip=6pt,font=small} +\setlength{\intextsep}{6pt}%Abstand nach der Grafik +% \end{macrocode} +% Take care of floats +% \begin{macrocode} +\def\fps@figure{htbp} +\def\fnum@figure{\figurename~\thefigure} +\def\@floatboxreset{% + \reset@font + \small + \@setnobreak + \@setminipage +}% +\setcounter{topnumber}{10}% maximale Anzahl gleitender Objekte am Seitenanfang +\setcounter{bottomnumber}{10}% maximale Anzahl gleitender Objekte am Seitenende +\renewcommand{\topfraction}{1.0}% Anteil den gleitende Objekte am Seitenanfang einnehmen dürfen +\renewcommand{\bottomfraction}{1.0}% Anteil den gleitende Objekte am Seitenende einnehmen dürfen +% \end{macrocode} +% Tables +% \begin{macrocode} +\def\fps@table{htbp} +\def\fnum@table{\tablename~\thetable} +\renewcommand{\arraystretch}{1.1} +% \end{macrocode} +% Indention for equations with fleqn option +% \begin{macrocode} +\setlength{\mathindent}{0.5cm} +% \end{macrocode} +% Indention for verbatim listings +% \begin{macrocode} +\RequirePackage{verbatim} +\def\verbatim@processline{\hskip0.5cm\the\verbatim@line\par} +% \end{macrocode} +% Set rule width und correct size +% \begin{macrocode} +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width 5cm + \kern2.6\p@} +\newdimen\fnindent +\fnindent0.18cm +\long\def\@makefntext#1{% + \parindent \fnindent% + \leftskip \fnindent% Einrückung vor der footnotemark + \noindent + \llap{\hb@xt@0.10cm{\hss\@makefnmark\ }}\ignorespaces#1} +% \end{macrocode} +% \begin{macrocode} +\setlength{\parindent}{0pt} +\setlength{\parskip}{8pt} +% \end{macrocode} +% Set symbols for itemize +% \begin{macrocode} +\renewcommand{\labelitemi}{$\bullet$} +\renewcommand*\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \setlength{\labelsep}{0.70cm}%Abstand zum Aufzählungspunkt + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}% + \setlength{\itemsep}{8pt}% + \setlength{\parsep}{-2pt}}% + \fi} +% \end{macrocode} +% and numbered lists +% \begin{macrocode} + \renewcommand{\labelenumii}{\alph{enumii})} + \renewcommand*\enumerate{% + \ifnum \@enumdepth >\thr@@ + \@toodeep + \else + \setlength{\labelsep}{0.70cm}%Abstand zur Aufzählungsnummer + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \fi + \@ifnextchar[{\@enumlabel@{\@enumerate@}[}{\@enumerate@}} + \def\@enumerate@{% + \expandafter\list\csname label\@enumctr\endcsname{% + \usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}} + \setlength{\labelsep}{0.6cm} %Einrückung des Aufzählungszeichens + \setlength{\itemsep}{8pt}% + \setlength{\parsep}{-2pt}} + }% +% \end{macrocode} +% \begin{macro}{\andname} +% \begin{macrocode} +\newcommand{\andname}{} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\addto\captionsngerman{% + \renewcommand{\andname}{und}% + \renewcommand{\figurename}{Abb.}% + \renewcommand{\tablename}{Tab.}% + \renewcommand{\lstlistingname}{List.}% + \renewcommand{\refname}{Literaturverzeichnis}% +}% +% \end{macrocode} +% \begin{macrocode} +\addto\captionsenglish{% + \renewcommand{\andname}{and}% + \renewcommand{\figurename}{Fig.}% + \renewcommand{\tablename}{Tab.}% + \renewcommand{\lstlistingname}{List.}% + \renewcommand{\refname}{Bibliography}% +}% +% \end{macrocode} +% \begin{macro}{\startpage} +% \begin{macrocode} +\newcommand*{\startpage}[1]{\setcounter{page}{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\booktitle} +% \begin{macrocode} +\newcommand*{\@booktitle}{} +\newcommand*{\booktitle}[1]{\renewcommand{\@booktitle}{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\editor} +% \begin{macrocode} +\newcommand*{\@editor}{} +\newcommand*{\editor}[1]{\renewcommand{\@editor}{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\AtBeginDocument{% + \let\@rigyear\year + \newcommand*{\@year}{\the\@rigyear} + \renewcommand*{\year}[1]{% + \renewcommand{\@year}{#1}% + }% +}% +% \end{macrocode} +% set-up for header and footer +% \begin{macrocode} +\fancypagestyle{plain}{% + \fancyhead{} % Löscht alle Kopfzeileneinstellungen + \fancyhead[RO]{\small\@editor~(Hrsg.):\ \@booktitle,\hspace{1sp}\null\linebreak% + Lecture Notes in Informatics (LNI), Gesellschaft für Informatik, Bonn~\@year% + \hspace{5pt}\thepage\hspace{0.05cm}} + \fancyhead[LE]{\small\@editor~(Hrsg.):\ \@booktitle,\linebreak\hspace{0.05cm}\thepage\hspace{5pt} Lecture Notes in Informatics (LNI), Gesellschaft für Informatik, Bonn~\@year} + \fancyfoot{} % Löscht alle Fußzeileneinstellungen + \renewcommand{\headrulewidth}{0.4pt} %Linie unter Kopfzeile +}% +\ifnorunningheads + \pagestyle{empty} +\else + \pagestyle{fancy} + \fancyhead{} % Löscht alle Kopfzeileneinstellungen + \fancyhead[RO]{\small\@shorttitle\hspace{5pt}\thepage\hspace{0.05cm}} + \fancyhead[LE]{\hspace{0.05cm}\small\thepage\hspace{5pt}\@shortauthor} + \fancyfoot{} % Löscht alle Fußzeileneinstellungen + \renewcommand{\headrulewidth}{0.4pt} %Linie unter Kopfzeile +\fi% +% \end{macrocode} +% \begin{macrocode} +\RequirePackage{url} +% \end{macrocode} +% improve wrapping of URLs - hint by http://tex.stackexchange.com/a/10419/9075 +% \begin{macrocode} +\g@addto@macro{\UrlBreaks}{\UrlOrds} +% \end{macrocode} +% \begin{macrocode} +\RequirePackage{xspace} +% \end{macrocode} +% \begin{macrocode} +\ifusehyperref + \AtEndPreamble{% + \RequirePackage[pdfusetitle,bookmarks=false]{hyperref} + \hypersetup{% + pdfdisplaydoctitle,% + colorlinks=true,% + allcolors=black,% + pdfstartview=Fit% + }% + }% +\fi% +% \end{macrocode} +% \begin{macrocode} +\ifusecleveref% + \AtEndPreamble{% + \iflnienglish + \RequirePackage[capitalise,nameinlink]{cleveref} + \crefname{section}{Sect.}{Sect.} + \Crefname{section}{Sect.}{Sect.} + \else + \RequirePackage[ngerman,nameinlink]{cleveref} + \fi% + \crefname{figure}{\figurename}{\figurename} + \Crefname{figure}{\figurename}{\figurename} + \crefname{listing}{\lstlistingname}{\lstlistingname} + \Crefname{listing}{\lstlistingname}{\lstlistingname} + \crefname{table}{\tablename}{\tablename} + \Crefname{table}{\tablename}{\tablename} + }% +\fi% +% \end{macrocode} +% enables correct jumping to figures when referencing +% \begin{macrocode} +\AtEndPreamble{\RequirePackage[all]{hypcap}} +% \end{macrocode} +% \begin{macrocode} +\def\and{\unskip\hspace{-0.42em},\hspace{.6em}} +% \end{macrocode} +% \begin{macrocode} +\ifusebiblatex +\else + \iflnienglish + \bibliographystyle{lni}% + \else + \bibliographystyle{lnig}% + \fi% +\fi% +\newcommand*{\lni@abbrv}[1]{#1\@\xspace} +\newcommand*{\lniabbrv}[2]{\gdef#1{\lni@abbrv{#2}}} +\newcommand*{\lni@initialism}[1]{\textsc{#1}\xspace} +\newcommand*{\lniinitialism}[2]{\gdef#1{\lni@initialism{#2}}} +\newcommand*{\ie}{\lni@abbrv{i.\,e.}} +\newcommand*{\eg}{\lni@abbrv{e.\,g.}} +\newcommand*{\cf}{\lni@abbrv{cf.}} +\newcommand*{\etal}{\lni@abbrv{et~al.}} +\newcommand*{\OMG}{\lni@initialism{omg}} +\newcommand*{\BPM}{\lni@initialism{bpm}} +\newcommand*{\BPMN}{\lni@initialism{bpmn}} +\newcommand*{\BPEL}{\lni@initialism{bpel}} +\newcommand*{\UML}{\lni@initialism{uml}} +% \end{macrocode} +% bibliography +% \begin{macrocode} +\renewenvironment{thebibliography}[1] +{\iflnienglish\selectlanguage{english}\else\selectlanguage{ngerman}\fi + \section*{\refname}% + \bgroup\small% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} +{\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist\egroup} +% \end{macrocode} +% \begin{macrocode} +\frenchspacing +\tolerance 1414 +\hbadness 1414 +\emergencystretch 1.5em +\hfuzz 0.3pt +\widowpenalty=10000 +\displaywidowpenalty=10000 +\clubpenalty=9999 +\interfootnotelinepenalty=9999 +\brokenpenalty=2000 +\vfuzz \hfuzz +\raggedbottom +% \end{macrocode} +% \begin{macrocode} +%</class> +% \end{macrocode} +%\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 %"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 %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 %*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 %"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 %"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 %"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 output.nonnull } + 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 %"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 %"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 %"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> +%%% Um einen Artikel auf deutsch zu schreiben, genügt es die Klasse ohne +%%% Parameter zu laden. +\documentclass[]{lni} +%%% To write an article in English, please use the option ``english'' in order +%%% to get the correct hyphenation patterns and terms. +%%% \documentclass[english]{class} +%% +\begin{document} +%%% Mehrere Autoren werden durch \and voneinander getrennt. +%%% Die Fußnote enthält die Adresse sowie eine E-Mail-Adresse. +%%% Das optionale Argument (sofern angegeben) wird für die Kopfzeile verwendet. +\title[Ein Kurztitel]{Ein sehr langer Titel über mehrere Zeilen mit sehr vielen +Worten und noch mehr Buchstaben} +%%%\subtitle{Untertitel / Subtitle} % if needed +\author[Vorname1 Nachname1 \and Firstname2 Lastname2] +{Vorname1 Nachname1\footnote{Universität, Abteilung, Straße, Postleitzahl Ort, +Land \email{emailaddress@author1}} \and +Firstname2 Lastname2\footnote{University, Department, Address, Country +\email{emailaddress@author2}}} +\startpage{11} % Beginn der Seitenzählung für diesen Beitrag / Start page +%numbering at this number +\editor{Herausgeber et al.} % Names of Editors +\booktitle{Name-der-Konferenz} % Name of book title +\year{2017} +%%%\lnidoi{18.18420/provided-by-editor-02} % if known +\maketitle + +\begin{abstract} +This is a brief overview of the paper, which should be 70 to 150 words long and +include the most relevant points. This has to be a single paragraph. +\end{abstract} +\begin{keywords} +Schlagwort1 \and Schlagwort2 %Keyword1 \and Keyword2 +\end{keywords} +%%% Beginn des Artikeltexts +\section{Überschrift/Heading} + +%%% Angabe der .bib-Datei (ohne Endung) / State .bib file (for BibTeX usage) +\bibliography{mybibfile} %\printbibliography if you use biblatex/Biber +\end{document} +%</template> +%<*exampledebib> +% Encoding: UTF-8 + +@InProceedings{ABC01, + author = {N. Abraham and U. Bibel and P. Corleone}, + title = {Formatting Contributions for Proceedings}, + pages = {46-53}, + crossref = {Gl01}, +} + +@InBook{Az09, + pages = {135-162}, + title = {Die Fußnote in LNI-Bänden}, + author = {Azubi, L. and others}, + crossref = {Gl09}, +} + +@Book{AB00, + title = {Formatierungsrichtlinien für Tagungsbände}, + publisher = {Format-Verlag}, + year = {2000}, + author = {K. Abel and U. Bibel}, + address = {Bonn}, +} + +@Book{Ez10, + title = {The Magic Format -- Your Way to Pretty Books}, + publisher = {Noah \& Sons}, + year = {2010}, + author = {O. Ezgarani}, +} + +@Article{Gl06, + author = {H. I. Glück}, + title = {Formatierung leicht gemacht}, + journal = {Formatierungsjournal}, + volume = {11}, + number = {09}, + year = {2009}, + pages = {23-27}, +} + +@Book{Wa14, + title = {Essenzen der Informatik}, + publisher = {Verlag Formvoll}, + year = {2014}, + author = {K. Wasser and H. Feuer and R. Erde and H. Licht}, +} + +@Book{Wa14b, + title = {Ganz neue Essenzen der Informatik im selben Jahr}, + publisher = {Format-Verlag}, + year = {2014}, + author = {K. Wasser and H. Feuer and R. Erde and H. Licht}, +} + +@Proceedings{Gl01, + title = {Proc. 7th Int. Conf. on Formatting of Workshop-Proceedings}, + year = {2001}, + editor = {Glück, H. I.}, + address = {San Francisco}, + publisher = {Noah \& Sons}, + booktitle = {Proc. 7th Int. Conf. on Formatting of Workshop-Proceedings}, +} + +@Book{Gl09, + title = {Formatierung 2009}, + publisher = {Format-Verlag}, + year = {2009}, + editor = {H. I. Glück}, + number = {999}, + series = {LNI}, + address = {Bonn}, + booktitle = {Formatierung 2009}, +} + +@Misc{XX14, + title = {Anteil an Frauen in der Informatik}, + label = {An}, + howpublished = {Statistics Worldwide}, + year = {2014}, +} + +@Online{GI19, + author = {{Gesellschaft für Informatik e.\,V.}}, + label = {GI}, + year = {2019}, + url = {http://www.gi.de}, + urldate = {2019-03-21} +} + +@Comment{jabref-meta: databaseType:biblatex;} +%</exampledebib> +%<*exampledetex> +%% Dies gibt Warnungen aus, sollten veraltete LaTeX-Befehle verwendet werden +\RequirePackage[l2tabu, orthodox]{nag} + +\documentclass[utf8,biblatex]{lni} +\bibliography{lni-paper-example-de} + +%% Schöne Tabellen mittels \toprule, \midrule, \bottomrule +\usepackage{booktabs} + +%% Zu Demonstrationszwecken +\usepackage[math]{blindtext} +\usepackage{mwe} + +%% BibLaTeX-Sonderkonfiguration, +%% falls man schnell eine existierende Bibliographie wiederverwenden will, aber nicht die .bib-Datei händisch anpassen möchte. +%% Bitte \iffalse und \fi entfernen, dann ist diese Konfiguration aktiviert. + +\iffalse +\AtEveryBibitem{% + \ifentrytype{article}{% + }{% + \clearfield{doi}% + \clearfield{issn}% + \clearfield{url}% + \clearfield{urldate}% + }% + \ifentrytype{inproceedings}{% + }{% + \clearfield{doi}% + \clearfield{issn}% + \clearfield{url}% + \clearfield{urldate}% + }% +} +\fi + +\begin{document} +%%% Mehrere Autoren werden durch \and voneinander getrennt. +%%% Die Fußnote enthält die Adresse sowie eine E-Mail-Adresse. +%%% Das optionale Argument (sofern angegeben) wird für die Kopfzeile verwendet. +\title[Ein Kurztitel]{Ein sehr langer Titel über mehrere Zeilen mit sehr vielen Worten und noch mehr Buchstaben} +%%%\subtitle{Untertitel / Subtitle} % falls benötigt +\author[Vorname1 Nachname1 \and Vorname2 Nachname2] +{Vorname1 Nachname1\footnote{Universität, Abteilung, Straße, Postleitzahl Ort, Land \email{emailaddress@author1}} \and + Vorname2 Nachname2\footnote{University, Department, Address, Country \email{emailaddress@author2}}} +\startpage{11} % Beginn der Seitenzählung für diesen Beitrag +\editor{Herausgeber et al.} % Namen der Herausgeber +\booktitle{Name-der-Konferenz} % Name des Tagungsband +\year{2017} +%%%\lnidoi{18.18420/provided-by-editor-02} % Falls bekannt +\maketitle + +\begin{abstract} +Die \LaTeX-Klasse \texttt{lni} setzt die Layout-Vorgaben für Beiträge in LNI Konferenzbänden um. +Dieses Dokument beschreibt ihre Verwendung und ist ein Beispiel für die entsprechende Darstellung. +Der Abstract ist ein kurzer Überblick über die Arbeit der zwischen 70 und 150 Wörtern lang sein und das Wichtigste enthalten sollte. +Die Formatierung erfolgt automatisch innerhalb des abstract-Bereichs. +\end{abstract} + +\begin{keywords} +LNI Guidelines \and \LaTeX Vorlage +\end{keywords} + +\section{Verwendung} +Die GI gibt unter \url{http://www.gi-ev.de/LNI} Vorgaben für die Formatierung von Dokumenten in der LNI Reihe. +Für \LaTeX-Dokumente werden diese durch die Dokumentenklasse \texttt{lni} realisiert. + +Dieses Dokument basiert auf der offiziellen Dokumentation, simplifiziert und setzt grundlegendes LaTeX-Wissen voraus. +Es werden generische Platzhalter an die entsprechenden Stellen (wie beispielsweise die Authoren-Angaben) gesetzt und nicht weiter an anderer Stelle dokumentiert. + +Dieses Template ist wie folgt gegliedert: +\Cref{sec:demos} zeigt Demonstrationen der LNI-Verlage. +\Cref{sec:lniconformance} zeigt die Einhaltung der Richtlinien durch einfachen Text. + +\section{Demonstrationen} +\label{sec:demos} +Das Symbol für Potenzmengen ($\powerset$) wird korrekt angezeigt. +Es ist kein Weierstraß-p ($\wp$) mehr. + +Spitze Klammen können direkt eingegeben werden: <test /> + +Hier eine kleine Demonstration von \href{https://www.ctan.org/pkg/microtype}{microtype}: +\blindtext + +\section{Demonstration der Einhaltung der Richtlinien} +\label{sec:lniconformance} + +\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. + +Referenzen sollten nicht direkt als Subjekt eingebunden werden, sondern immer nur durch Authorenanganben: +Beispiel: \Citet{AB00} geben ein Beispiel, aber auch \citet{Az09}. +Hinweis: Großes C bei \texttt{Citet}, wenn es am Satzanfang steht. Dies ist analog zu \texttt{Cref}. + +Formatierung und Abkürzungen werden für die Referenzen \texttt{book}, \texttt{inbook}, \texttt{proceedings}, \texttt{inproceedings}, \texttt{article}, \texttt{online} und \texttt{misc} automatisch vorgenommen. +Mögliche Felder für Referenzen können der Beispieldatei \texttt{lni-paper-example-de.bib} entnommen werden. +Andere Referenzen sowie Felder müssen allenfalls nachträglich angepasst werden. + +\subsection{Abbildungen} +\Cref{fig:demo} zeigt eine Abbildung. + +\begin{figure} + \centering + \includegraphics[width=.8\textwidth]{example-image} + \caption{Demographik} + \label{fig:demo} +\end{figure} + +\subsection{Tabellen} +\Cref{tab:demo} zeigt eine Tabelle. + +\begin{table} +\centering +\begin{tabular}{lll} +\toprule +Überschriftsebenen & Beispiel & Schriftgröße und -art \\ +\midrule +Titel (linksbündig) & Der Titel \ldots & 14 pt, Fett\\ +Überschrift 1 & 1 Einleitung & 12 pt, Fett\\ +Überschrift 2 & 2.1 Titel & 10 pt, Fett\\ +\bottomrule +\end{tabular} +\caption{Die Überschriftsarten} +\label{tab:demo} +\end{table} + +\subsection{Programmcode} +Die LNI-Formatvorlage verlangt die Einrückung von Listings vom linken Rand. +In der \texttt{lni}-Dokumentenklasse ist dies für die \texttt{verbatim}-Umgebung realisiert. + +\begin{verbatim} +public class Hello { + public static void main (String[] args) { + System.out.println("Hello World!"); + } +} +\end{verbatim} + +Alternativ kann auch die \texttt{lstlisting}-Umgebung verwendet werden. + +\Cref{L1} zeigt uns ein Beispiel, das mit Hilfe der \texttt{lstlisting}-Umgebung realisiert ist. + +\begin{lstlisting}[caption={Beschreibung}, label=L1, language=Java] +public class Hello { + public static void main (String[] args) { + System.out.println("Hello World!"); + } +} +\end{lstlisting} + +\subsection{Formeln und Gleichungen} + +Die korrekte Einrückung und Nummerierung für Formeln ist bei den Umgebungen \texttt{equation} und \texttt{eqnarray} gewährleistet. + +\begin{equation} + 1=4-3 +\end{equation} +und +\begin{eqnarray} + 2=7-5\\ + 3=2-1 +\end{eqnarray} + +%% \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. +\printbibliography + +\end{document} +%</exampledetex> +% \end{macrocode} +%\fi diff --git a/macros/latex/contrib/lni/lni.ins b/macros/latex/contrib/lni/lni.ins new file mode 100644 index 0000000000..fc495f759d --- /dev/null +++ b/macros/latex/contrib/lni/lni.ins @@ -0,0 +1,129 @@ +%% +%% This is file `lni.ins', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% lni.dtx (with options: `install') +%% --------| ----------------------------------------------------------------- +%% lni:| A class for submissions to the ``Lecture Notes in Informatics'' +%% Author:| Martin Sievers +%% Email:| martin.sievers@schoenerpublizieren.de +%% License:| Released under the LaTeX Project Public License v1.3c or later +%% See:| http://www.latex-project.org/lppl.txt +%% --------| ----------------------------------------------------------------- +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\declarepreamble\bibtexengpre +lnig.bst +Lecture Notes in Informatics Style File (english) +Version 1.0 (2017/04/07) + +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.0 (2017/04/07) + +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'' + Author:| Martin Sievers + Email:| martin.sievers@schoenerpublizieren.de +License:| Released under the LaTeX Project Public License v1.3c or later + See:| http://www.latex-project.org/lppl.txt +--------| ----------------------------------------------------------------- +\endpreamble + +\def\templatepre{% +\perCent\space !TeX encoding = UTF-8^^J% +\perCent\space !TeX program = pdflatex^^J% +\perCent\space !BIB program = bibtex^^J% +} + +\def\templatepreger{% +\perCent\space !TeX encoding = UTF-8^^J% +\perCent\space !TeX spellcheck = de_DE^^J% +} + +\postamble + +Copyright (C) 2016-2019 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 + CHANGELOG.md + and the derived files lni.pdf + lni.cls + lni-author-template.tex + lni-paper-example-de.bib + lni-paper-example-de.tex + lni.bst + lnig.bst +\endpostamble + +\usedir{tex/latex/lni} +\AddGenerationDate +\generate{ + \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-2019 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 +%% CHANGELOG.md +%% and the derived files lni.pdf +%% lni.cls +%% lni-author-template.tex +%% lni-paper-example-de.bib +%% lni-paper-example-de.tex +%% lni.bst +%% lnig.bst +%% +%% End of file `lni.ins'. diff --git a/macros/latex/contrib/lni/lni.pdf b/macros/latex/contrib/lni/lni.pdf Binary files differnew file mode 100644 index 0000000000..e4be74932c --- /dev/null +++ b/macros/latex/contrib/lni/lni.pdf |