summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2017-04-10 01:15:24 +0000
committerNorbert Preining <preining@logic.at>2017-04-10 01:15:24 +0000
commit6d52d1e7b217b30b19c36b7c16b70daf9cacb71d (patch)
treedbe03bd979294697001bc159f018164c42a72cc5
parentf66f9551103ff3a5a38404f859b2b5d0af37bea6 (diff)
new lni (10Apr17)
git-svn-id: svn://tug.org/texlive/trunk@43730 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/texmf-dist/bibtex/bst/lni/lni.bst1301
-rwxr-xr-xMaster/texmf-dist/bibtex/bst/lni/lnig.bst1301
-rwxr-xr-xMaster/texmf-dist/doc/latex/lni/README.md32
-rwxr-xr-xMaster/texmf-dist/doc/latex/lni/lni-author-template.tex40
l---------Master/texmf-dist/doc/latex/lni/lni-instructions.pdf1
-rwxr-xr-xMaster/texmf-dist/doc/latex/lni/lni.pdfbin0 -> 352123 bytes
-rwxr-xr-xMaster/texmf-dist/source/latex/lni/lni.dtx2580
-rwxr-xr-xMaster/texmf-dist/source/latex/lni/lni.ins120
-rwxr-xr-xMaster/texmf-dist/tex/latex/lni/lni.cls423
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-publishers.tlpsrc1
-rwxr-xr-xMaster/tlpkg/tlpsrc/lni.tlpsrc0
12 files changed, 5800 insertions, 1 deletions
diff --git a/Master/texmf-dist/bibtex/bst/lni/lni.bst b/Master/texmf-dist/bibtex/bst/lni/lni.bst
new file mode 100755
index 00000000000..7434b05a524
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/lni/lni.bst
@@ -0,0 +1,1301 @@
+%%
+%% This is file `lni.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lni.dtx (with options: `bibtex,eng')
+%%
+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
+ :=
+ nameptr #1 >
+ { namesleft #1 >
+ { "; " * t * }
+ { namesleft #2 >
+ { ";" * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { "; " * 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 >
+{ ", eds" * }
+{ ", ed." * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ '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$
+ { "" }
+ { "volume" volume tie.or.space.connect
+ series empty$
+'skip$
+{ " of " * series % no emphasize
+* }
+ 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 =
+{ edition "l" change.case$ " edition" * }
+{ edition "t" change.case$ " edition" * }
+ 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
+ % -> Use abbreviation: pp. for pages, p. for page
+{ "pp." pages n.dashify tie.or.space.connect }
+{ "p." pages tie.or.space.connect }
+ 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$
+{ "chapter" }
+{ 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$
+ { "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$
+ { "Technical Report" }
+ '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$
+{ 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 "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ 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$
+}
+{ "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
+ "Master's thesis" format.thesis.type output.nonnull
+ 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
+ "PhD thesis" format.thesis.type output.nonnull
+ 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 }
+
+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"}
+
+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
+ { "\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}
+%%
+%% Copyright (C) 2016-2017 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
+%% and the derived files lni.pdf
+%% lni.cls
+%% lni-author-template.tex
+%% lni.bst
+%% lnig.bst
+%%
+%% End of file `lni.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/lni/lnig.bst b/Master/texmf-dist/bibtex/bst/lni/lnig.bst
new file mode 100755
index 00000000000..1859cfc8c0e
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/lni/lnig.bst
@@ -0,0 +1,1301 @@
+%%
+%% This is file `lnig.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lni.dtx (with options: `bibtex,ger')
+%%
+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
+ :=
+ nameptr #1 >
+ { namesleft #1 >
+ { "; " * t * }
+ { namesleft #2 >
+ { ";" * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { "; " * 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 >
+{ ", Hrsg." * }
+{ ", Hrsg." * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ '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$
+ { "" }
+ { "Jgg." volume tie.or.space.connect
+ series empty$
+'skip$
+{ " in " * series % no emphasize
+* }
+ 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 =
+{ edition "l" change.case$ ".~Auflage" * }
+{ edition "t" change.case$ ".~Auflage" * }
+ 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
+ % -> Nutze Abk.: S.
+{ "S." pages n.dashify tie.or.space.connect }
+{ "S." pages tie.or.space.connect }
+ 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$
+{ "Kapitel" }
+{ 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$
+ { "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$
+ { "Bericht" }
+ '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$
+{ 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 "
+ }
+ { "Jgg." volume tie.or.space.connect
+ " in " *
+ }
+ 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$
+}
+{ "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
+ "Masterarbeit" format.thesis.type output.nonnull
+ 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
+ "Dissertation" format.thesis.type output.nonnull
+ 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 }
+
+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"}
+
+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
+ { "\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}
+%%
+%% Copyright (C) 2016-2017 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
+%% and the derived files lni.pdf
+%% lni.cls
+%% lni-author-template.tex
+%% lni.bst
+%% lnig.bst
+%%
+%% End of file `lnig.bst'.
diff --git a/Master/texmf-dist/doc/latex/lni/README.md b/Master/texmf-dist/doc/latex/lni/README.md
new file mode 100755
index 00000000000..2e080478ab6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/lni/README.md
@@ -0,0 +1,32 @@
+# lni
+
+```
+----------------------------------------------------------------------------
+lni -- A class for submissions to the ``Lecture Notes in Informatics''
+(c) 2016-2017 Gesellschaft für Informatik (GI)
+Version: 1.0
+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.
+
+Stable versions are always uploaded to CTAN. In addition you'll 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.
+
+## Changelog
+
+* v1.0: First upload of the revised version
+
+ [GI]: https://www.gi.de/
+ [Lecture Notes in Informatics]: https://www.gi.de/service/publikationen/lni.html
diff --git a/Master/texmf-dist/doc/latex/lni/lni-author-template.tex b/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
new file mode 100755
index 00000000000..e4e50108de1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
@@ -0,0 +1,40 @@
+%% !TeX encoding = UTF-8
+%% !TeX program = pdflatex
+%% !BIB program = bibtex
+%%
+%%% 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.
+\author[Vorname1 Name1\and Vorname2 Name2]
+{Vorname1 Nachname1\footnote{Einrichtung/Universität, Abteilung, Anschrift, Postleitzahl Ort, \email{emailadresse@author1}}\and
+ Vorname2 Nachname2\footnote{Einrichtung/Universität, Abteilung, Anschrift, Postleitzahl Ort, \email{emailadresse@author2}}
+ und weitere Autorinnen und Autoren in der gleichen Notation}
+\title[Kurztitel (falls nötig)]{Titel}
+\startpage{11}% Beginn der Seitenzählung für diesen Beitrag
+\editor{Herausgeber et al.}
+\booktitle{Name-der-Konferenz}
+\year{2017}
+\maketitle
+
+\begin{abstract}
+Hier kommt die Zusammenfassung hin
+Add your abstract here
+\end{abstract}
+\begin{keywords}
+Hier kommen die Keywords hin
+Add your keywords here
+\end{keywords}
+%%% Beginn des Artikeltexts
+\section{Überschrift}
+
+%%% Angabe der .bib-Datei (ohne Endung)
+\bibliography{mybibfile}
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf b/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf
new file mode 120000
index 00000000000..3a6a63c6cc1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf
@@ -0,0 +1 @@
+lni.pdf \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/lni/lni.pdf b/Master/texmf-dist/doc/latex/lni/lni.pdf
new file mode 100755
index 00000000000..82ae3bb9495
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/lni/lni.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/lni/lni.dtx b/Master/texmf-dist/source/latex/lni/lni.dtx
new file mode 100755
index 00000000000..86c7a65522a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/lni/lni.dtx
@@ -0,0 +1,2580 @@
+% \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.
+%%
+%%***************************************************
+% Changelog:
+%
+% 1.0 (07.04.17), Martin Sievers
+% - Revised version
+%
+% (17.12.14), Judith Michael, Alpen-Adria-Universität Klagenfurt, Austria
+% Changes:
+% - Last Name before the prename
+% - ; between Autors
+% - : before title
+% - Lable: Abbreviation of name of first author instead of + (former: A+09 or WFEL14, now Az09 and Wa14)
+% - Lable: Use first 2 letters of title if there is no author
+% - add : after In (functions inproceedings and inbook)
+% - no emphasize of titles
+% - editors in bracelets ()
+% - correct order of reference infos
+% - correct signs (.,:()) between reference infos
+% - Add second prename
+% - change order of series (not: "number" in "series", now "series" "number"
+%
+%%***************************************************
+%
+\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.
+%%
+%%***************************************************
+% Changelog:
+%
+% 1.0 (07.04.17), Martin Sievers
+% - Revised version
+%
+% (17.12.14), Judith Michael, Alpen-Adria-Universität Klagenfurt, Austria
+% Changes:
+% - Last Name before the prename
+% - ; between Autors
+% - : before title
+% - Lable: Abbreviation of name of first author instead of + (former: A+09 or WFEL14, now Az09 and Wa14)
+% - Lable: Use first 2 letters of title if there is no author
+% - add : after In (functions inproceedings and inbook)
+% - no emphasize of titles
+% - editors in bracelets ()
+% - correct order of reference infos
+% - correct signs (.,:()) between reference infos
+% - Add second prename
+% - change order of series (not: "number" in "series", now "series" "number"
+%
+%%***************************************************
+%
+\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
+\postamble
+
+Copyright (C) 2016-2017 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
+ and the derived files lni.pdf
+ lni.cls
+ lni-author-template.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{
+ %%%\file{README.md}{\from{\jobname.dtx}{readme}}
+ \file{lni-author-template.tex}{\from{\jobname.dtx}{template}}
+}
+\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>
+ [2017/04/07 v1.0 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}
+\newcommand*{\MiKTeX}{\textsf{MiK\TeX{}}}
+\usepackage[%
+ pdftitle={lni: Official LaTeX class for submissions to the ``Lecture Notes in
+ Informatics'', published by the GI},
+ pdfauthor={Martin Sievers},
+ urlcolor=blue,%
+ linktocpage,%
+ 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,email,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}
+%
+% \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\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 \LNI{} 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}{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 you should copy all files (cls, tex, pdf and bst) to
+% your local TEXMF tree and 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 got to \href{www.ctan.org}{CTAN}
+% to download missing packages.
+%
+% \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.
+%
+% \DescribeMacro{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}).
+%
+% \DescribeMacro{utf8}\DescribeMacro{latin1}\DescribeMacro{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.
+%
+% \DescribeMacro{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}. Please see as well
+% \cref{sec:bibliography}.
+%
+% \DescribeMacro{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.
+%
+% \DescribeMacro{nohyperref}\pkg{hyperref} is used for colored hyperlink within the
+% articles. If you consider problems or just do not want that feature, you can
+% disable it by using the option \opt{nohyperref}.
+%
+% \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 = en_GB
+% \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}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}
+%
+% \DescribeMacro{\author}\DescribeMacro{\email}\DescribeMacro{\footnote}%
+% 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.
+%
+% Finally \cs{maketitle} will output the formatted title page.
+%
+% \subsection{Abstract and keywords}
+% Each article should start with a short 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
+% \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}
+% \authors[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 \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$).
+%
+% \subsection{Bibliography}\label{sec:bibliography}
+% 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}
+%
+% \newpage
+% \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@namepart'.},\\
+% 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/sieversMartin/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}
+\ExecuteOptions{utf8}
+\DeclareOption*{\ClassWarning{Option `\CurrentOption` is not supported!}}
+\ProcessOptions\relax
+
+\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
+\LoadClass[10pt,twoside,a4paper,fleqn]{article}
+\RequirePackage{cmap}
+\RequirePackage{inputenc}
+\RequirePackage[T1]{fontenc}
+
+\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}
+\RequirePackage{newtxtext}
+\RequirePackage{newtxmath}
+\RequirePackage[zerostyle=b,straightquotes,scaled=.9]{newtxtt}
+\RequirePackage[%
+ final,%
+ tracking=smallcaps,%
+ expansion=alltext,%
+ protrusion=alltext-nott]{microtype}%
+\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}
+% Satzspiegel
+% \begin{macrocode}
+\RequirePackage[
+ a4paper,
+ total={12.6cm,19.2cm},
+ includehead,
+ headheight=20.39pt,
+ headsep=.31cm,
+ centering]
+ {geometry}
+% \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.
+ % 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}}%
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{graphicx}
+\RequirePackage{grffile}
+\RequirePackage{fancyhdr}
+\RequirePackage{listings}
+% \end{macrocode}
+% \begin{macrocode}
+% Ragged bottom -- verhindert die Ausdehnung der Seite = Veränderung der Abstände
+\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
+\global\let\@textbottom\relax}}
+
+% Seitenzahlen -- Größe der Box
+\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{macrocode}
+\renewcommand{\title}{\@dblarg\@@title}
+\def\@@title[#1]#2{\gdef\@shorttitle{#1}\gdef\@title{#2}}
+% \end{macrocode}
+% \begin{macrocode}
+\renewcommand{\author}{\@dblarg\@@author}
+\def\@@author[#1]#2{\gdef\@shortauthor{{\let\footnote\@gobble%
+ \def\and{\unskip,\ }#1}}\gdef\@author{#2}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand{\authorrunning}[1]{\fancyhead[LE]{\hspace{0.05cm}\small\thepage\hspace{5pt}#1}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\email}[1]{{\urlstyle{same}\protect\url{#1}}}
+% \end{macrocode}
+% \begin{macrocode}
+% Title: Kopie aus article.cls mit anderem \thispagestyle
+\renewcommand\maketitle{\par%
+% Keine Vertikale Einrückung über dem Titel auf der Titelseite
+%\changepage{0mm}{0mm}{0mm}{0mm}{0mm}{0.56cm}{0mm}{0mm}{0mm}
+\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
+ \thispagestyle{plain}
+ \@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
+ {\fontsize{14}{17}\fontseries{b}\selectfont \@title \par}%
+ \vskip 19pt% Abstand nach dem Titel
+ {\fontsize{10}{12}\selectfont
+ \lineskip .5em%
+ \@author
+ \par}%
+ \vskip 28pt% Abstand vor dem Abstract
+ \end{center}%
+ \par
+}
+% \end{macrocode}
+% \begin{macrocode}
+% Abstract
+\renewenvironment*{abstract}{%
+ \renewcommand{\abstractname}{Abstract}
+ \fontsize{9}{10}\selectfont
+ \noindent\ignorespaces{\bfseries \abstractname:\ }%
+}{\endquotation}
+% \end{macrocode}
+% \begin{macrocode}
+% Keywords
+\newif\ifkeywords
+\newenvironment{keywords}{\global\keywordstrue\fontsize{9}{10}\selectfont
+ \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 to an environment}\keywordsfalse\fi}{}{}
+% \end{macrocode}
+% 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@}{\fontsize{12}{14}\fontseries{b}\selectfont}}
+\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
+ {-16\p@ \@plus -4\p@ \@minus -4\p@}{8\p@ \@plus 4\p@ \@minus 4\p@}{\fontsize{10}{12}\fontseries{b}\selectfont}}
+% \end{macrocode}
+% Bildunterschriften
+% \begin{macrocode}
+\setlength{\abovecaptionskip}{4pt}%Abstand vor der Bildunterschrift
+\setlength{\belowcaptionskip}{0pt}%Abstand nach der Bildunterschrift
+\setlength{\intextsep}{6pt}%Abstand nach der Grafik
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ {\small
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi}
+ \vskip\belowcaptionskip}
+% \end{macrocode}
+% Abbildungen
+% \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}
+% Tabellen
+% \begin{macrocode}
+\def\fps@table{htbp}
+\def\fnum@table{\tablename~\thetable}
+\renewcommand{\arraystretch}{1.1}%Abstand zu Linien in Tabelle
+\renewenvironment{table}
+ {\setlength\abovecaptionskip{6\p@}%
+ \setlength\belowcaptionskip{0\p@}%
+ \@float{table}}
+ {\end@float}
+\renewenvironment{table*}
+ {\setlength\abovecaptionskip{6\p@}%
+ \setlength\belowcaptionskip{0\p@}%
+ \@dblfloat{table}}
+ {\end@dblfloat}
+% \end{macrocode}
+% Gleichungen mit richtiger Einrückung, 0.5cm
+% fleqn-Option oben
+% \begin{macrocode}
+\setlength{\mathindent}{0.5cm}
+% \end{macrocode}
+% listings mit richtiger einrückung, 0.5 cm
+% \begin{macrocode}
+\RequirePackage{verbatim}
+\def\verbatim@processline{\hskip0.5cm\the\verbatim@line\par}
+% \end{macrocode}
+% \begin{macrocode}
+% Fussnoten mit 5cm Linie und richtiger Größe
+\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}
+% Absatzeinzüge und Abstände
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{8pt}
+% \end{macrocode}
+% Aufzählungen mit Punkt
+% \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}
+% Nummierierte Aufzählung
+% \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{macrocode}
+\newcommand{\andname}{}
+\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.}
+}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\startpage}[1]{\setcounter{page}{#1}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\@booktitle}{}
+\newcommand*{\booktitle}[1]{\renewcommand{\@booktitle}{#1}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\@editor}{}
+\newcommand*{\editor}[1]{\renewcommand{\@editor}{#1}}
+% \end{macrocode}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \let\@rigyear\year
+ \newcommand*{\@year}{\the\@rigyear}
+ \renewcommand*{\year}[1]{%
+ \renewcommand{\@year}{#1}%
+ }%
+}%
+% \end{macrocode}
+% Kopfzeileneinstellungen
+% \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
+}
+% \end{macrocode}
+% \begin{macrocode}
+\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
+% \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}
+\ifusehyperref
+ \RequirePackage[pdfusetitle]{hyperref}
+ \hypersetup{%
+ pdfdisplaydoctitle,
+ bookmarks=false,%
+ colorlinks=true,%
+ allcolors=black,%
+ %%%pdfpagelayout=TwoPageRight,%
+ pdfstartview=Fit%
+ }%
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+\ifusecleveref%
+ \iflnienglish
+ \usepackage[capitalise,nameinlink]{cleveref}
+ \crefname{section}{Sect.}{Sect.}
+ \Crefname{section}{Sect.}{Sect.}
+ \else
+ \usepackage[ngerman,nameinlink]{cleveref}
+ \fi%
+ \crefname{figure}{\figurename}{\figurename}
+ \crefname{listing}{\lstlistingname}{\lstlistingname}
+ \crefname{table}{\tablename}{\tablename}
+\fi%
+% \end{macrocode}
+% enables correct jumping to figures when referencing
+% \begin{macrocode}
+\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%
+% \end{macrocode}
+% bibliography
+% \begin{macrocode}
+\renewenvironment{thebibliography}[1]
+{\iflnienglish\selectlanguage{english}\else\selectlanguage{ngerman}\fi
+ \section*{\refname}%
+ \bgroup\fontsize{9}{10}\selectfont
+ \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 % Abstand nach Satzende
+\widowpenalty=10000 % Vermeidet "widows & orphans"
+\clubpenalty=10000
+% \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>
+%% !TeX encoding = UTF-8
+%% !TeX program = pdflatex
+%% !BIB program = bibtex
+%%
+%%% 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.
+\author[Vorname1 Name1\and Vorname2 Name2]
+{Vorname1 Nachname1\footnote{Einrichtung/Universität, Abteilung, Anschrift, Postleitzahl Ort, \email{emailadresse@author1}}\and
+ Vorname2 Nachname2\footnote{Einrichtung/Universität, Abteilung, Anschrift, Postleitzahl Ort, \email{emailadresse@author2}}
+ und weitere Autorinnen und Autoren in der gleichen Notation}
+%
+\title[Kurztitel (falls nötig)]{Titel}
+%
+\startpage{11}% Beginn der Seitenzählung für diesen Beitrag
+\editor{Herausgeber et al.}
+\booktitle{Name-der-Konferenz}
+\year{2017}
+\maketitle
+
+\begin{abstract}
+Hier kommt die Zusammenfassung hin
+Add your abstract here
+\end{abstract}
+\begin{keywords}
+Hier kommen die Keywords hin
+Add your keywords here
+\end{keywords}
+%%% Beginn des Artikeltexts
+\section{Überschrift}
+
+%%% Angabe der .bib-Datei (ohne Endung)
+\bibliography{mybibfile}
+\end{document}
+%</template>
+% \end{macrocode}
+%\fi
diff --git a/Master/texmf-dist/source/latex/lni/lni.ins b/Master/texmf-dist/source/latex/lni/lni.ins
new file mode 100755
index 00000000000..cd3230d749f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/lni/lni.ins
@@ -0,0 +1,120 @@
+%%
+%% 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
+\postamble
+
+Copyright (C) 2016-2017 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
+ and the derived files lni.pdf
+ lni.cls
+ lni-author-template.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-2017 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
+%% and the derived files lni.pdf
+%% lni.cls
+%% lni-author-template.tex
+%% lni.bst
+%% lnig.bst
+%%
+%% End of file `lni.ins'.
diff --git a/Master/texmf-dist/tex/latex/lni/lni.cls b/Master/texmf-dist/tex/latex/lni/lni.cls
new file mode 100755
index 00000000000..ee32a6ec214
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/lni/lni.cls
@@ -0,0 +1,423 @@
+%%
+%% This is file `lni.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lni.dtx (with options: `class')
+%% -------:| -----------------------------------------------------------------
+%% 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
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesClass{lni}
+ [2017/04/07 v1.0 Official class for submissions to the ``Lecture Notes in Informatics'']
+\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}
+\ExecuteOptions{utf8}
+\DeclareOption*{\ClassWarning{Option `\CurrentOption` is not supported!}}
+\ProcessOptions\relax
+
+\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
+\LoadClass[10pt,twoside,a4paper,fleqn]{article}
+\RequirePackage{cmap}
+\RequirePackage{inputenc}
+\RequirePackage[T1]{fontenc}
+
+\iflnienglish
+ \RequirePackage[ngerman,english]{babel}
+\else
+ \RequirePackage[english,ngerman]{babel}
+\fi
+\useshorthands*{"}
+\addto\extrasenglish{\languageshorthands{ngerman}}
+\RequirePackage{newtxtext}
+\RequirePackage{newtxmath}
+\RequirePackage[zerostyle=b,straightquotes,scaled=.9]{newtxtt}
+\RequirePackage[%
+ final,%
+ tracking=smallcaps,%
+ expansion=alltext,%
+ protrusion=alltext-nott]{microtype}%
+\SetTracking{encoding=*,shape=sc}{50}%
+\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}
+\RequirePackage[
+ a4paper,
+ total={12.6cm,19.2cm},
+ includehead,
+ headheight=20.39pt,
+ headsep=.31cm,
+ centering]
+ {geometry}
+\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.
+ % 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}}%
+\fi%
+\RequirePackage{graphicx}
+\RequirePackage{grffile}
+\RequirePackage{fancyhdr}
+\RequirePackage{listings}
+\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
+\global\let\@textbottom\relax}}
+
+\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}
+\renewcommand{\title}{\@dblarg\@@title}
+\def\@@title[#1]#2{\gdef\@shorttitle{#1}\gdef\@title{#2}}
+\renewcommand{\author}{\@dblarg\@@author}
+\def\@@author[#1]#2{\gdef\@shortauthor{{\let\footnote\@gobble%
+ \def\and{\unskip,\ }#1}}\gdef\@author{#2}}
+\newcommand{\authorrunning}[1]{\fancyhead[LE]{\hspace{0.05cm}\small\thepage\hspace{5pt}#1}}
+\newcommand*{\email}[1]{{\urlstyle{same}\protect\url{#1}}}
+\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
+ \thispagestyle{plain}
+ \@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
+}
+\def\@maketitle{%
+ \newpage
+ \null
+ \begin{center}%
+ \vskip -24pt% Abstand vor dem Titel
+ \raggedright % Linksbündig
+ \let\footnote\thanks
+ {\fontsize{14}{17}\fontseries{b}\selectfont \@title \par}%
+ \vskip 19pt% Abstand nach dem Titel
+ {\fontsize{10}{12}\selectfont
+ \lineskip .5em%
+ \@author
+ \par}%
+ \vskip 28pt% Abstand vor dem Abstract
+ \end{center}%
+ \par
+}
+\renewenvironment*{abstract}{%
+ \renewcommand{\abstractname}{Abstract}
+ \fontsize{9}{10}\selectfont
+ \noindent\ignorespaces{\bfseries \abstractname:\ }%
+}{\endquotation}
+\newif\ifkeywords
+\newenvironment{keywords}{\global\keywordstrue\fontsize{9}{10}\selectfont
+ \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 to an environment}\keywordsfalse\fi}{}{}
+\renewcommand{\section}{\@startsection{section}{1}{\z@}%
+ {-16\p@ \@plus -4\p@ \@minus -4\p@}{5\p@ \@plus 4\p@ \@minus 4\p@}{\fontsize{12}{14}\fontseries{b}\selectfont}}
+\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
+ {-16\p@ \@plus -4\p@ \@minus -4\p@}{8\p@ \@plus 4\p@ \@minus 4\p@}{\fontsize{10}{12}\fontseries{b}\selectfont}}
+\setlength{\abovecaptionskip}{4pt}%Abstand vor der Bildunterschrift
+\setlength{\belowcaptionskip}{0pt}%Abstand nach der Bildunterschrift
+\setlength{\intextsep}{6pt}%Abstand nach der Grafik
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ {\small
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi}
+ \vskip\belowcaptionskip}
+\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
+\def\fps@table{htbp}
+\def\fnum@table{\tablename~\thetable}
+\renewcommand{\arraystretch}{1.1}%Abstand zu Linien in Tabelle
+\renewenvironment{table}
+ {\setlength\abovecaptionskip{6\p@}%
+ \setlength\belowcaptionskip{0\p@}%
+ \@float{table}}
+ {\end@float}
+\renewenvironment{table*}
+ {\setlength\abovecaptionskip{6\p@}%
+ \setlength\belowcaptionskip{0\p@}%
+ \@dblfloat{table}}
+ {\end@dblfloat}
+\setlength{\mathindent}{0.5cm}
+\RequirePackage{verbatim}
+\def\verbatim@processline{\hskip0.5cm\the\verbatim@line\par}
+\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}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{8pt}
+\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}
+ \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}}
+ }
+\newcommand{\andname}{}
+\addto\captionsngerman{%
+ \renewcommand{\andname}{und}%
+ \renewcommand{\figurename}{Abb.}%
+ \renewcommand{\tablename}{Tab.}%
+ \renewcommand{\lstlistingname}{List.}
+ \renewcommand{\refname}{Literaturverzeichnis}
+}
+\addto\captionsenglish{%
+ \renewcommand{\andname}{and}%
+ \renewcommand{\figurename}{Fig.}%
+ \renewcommand{\tablename}{Tab.}%
+ \renewcommand{\lstlistingname}{List.}
+}
+\newcommand*{\startpage}[1]{\setcounter{page}{#1}}
+\newcommand*{\@booktitle}{}
+\newcommand*{\booktitle}[1]{\renewcommand{\@booktitle}{#1}}
+\newcommand*{\@editor}{}
+\newcommand*{\editor}[1]{\renewcommand{\@editor}{#1}}
+\AtBeginDocument{%
+ \let\@rigyear\year
+ \newcommand*{\@year}{\the\@rigyear}
+ \renewcommand*{\year}[1]{%
+ \renewcommand{\@year}{#1}%
+ }%
+}%
+\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
+}
+\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
+\RequirePackage{url}
+\g@addto@macro{\UrlBreaks}{\UrlOrds}
+\ifusehyperref
+ \RequirePackage[pdfusetitle]{hyperref}
+ \hypersetup{%
+ pdfdisplaydoctitle,
+ bookmarks=false,%
+ colorlinks=true,%
+ allcolors=black,%
+ %%%pdfpagelayout=TwoPageRight,%
+ pdfstartview=Fit%
+ }%
+\fi%
+\ifusecleveref%
+ \iflnienglish
+ \usepackage[capitalise,nameinlink]{cleveref}
+ \crefname{section}{Sect.}{Sect.}
+ \Crefname{section}{Sect.}{Sect.}
+ \else
+ \usepackage[ngerman,nameinlink]{cleveref}
+ \fi%
+ \crefname{figure}{\figurename}{\figurename}
+ \crefname{listing}{\lstlistingname}{\lstlistingname}
+ \crefname{table}{\tablename}{\tablename}
+\fi%
+\RequirePackage[all]{hypcap}
+\def\and{\unskip\hspace{-0.42em},\hspace{.6em}}
+\ifusebiblatex
+\else
+ \iflnienglish
+ \bibliographystyle{lni}%
+ \else
+ \bibliographystyle{lnig}%
+ \fi%
+\fi%
+\renewenvironment{thebibliography}[1]
+{\iflnienglish\selectlanguage{english}\else\selectlanguage{ngerman}\fi
+ \section*{\refname}%
+ \bgroup\fontsize{9}{10}\selectfont
+ \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}
+\frenchspacing % Abstand nach Satzende
+\widowpenalty=10000 % Vermeidet "widows & orphans"
+\clubpenalty=10000
+%%
+%% Copyright (C) 2016-2017 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
+%% and the derived files lni.pdf
+%% lni.cls
+%% lni-author-template.tex
+%% lni.bst
+%% lnig.bst
+%%
+%% End of file `lni.cls'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 29e5bcf915e..c167fd72ad5 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -370,7 +370,7 @@ my @TLP_working = qw(
lion-msc lipsum lisp-on-tex
listbib listing listings listings-ext listlbls listliketab
listofitems listofsymbols
- lithuanian liturg lkproof lm lm-math lmake lobster2
+ lithuanian liturg lkproof lm lm-math lmake lni lobster2
locality localloc logbox logical-markup-utils logicproof logicpuzzle
logpap logreq lollipop
longdivision longfbox longfigure longnamefilelist loops
diff --git a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
index c630220bd08..ec1bd5a2fb8 100644
--- a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
@@ -81,6 +81,7 @@ depend kluwer
depend ksp-thesis
depend langsci
depend lion-msc
+depend lni
depend lps
depend matc3
depend matc3mem
diff --git a/Master/tlpkg/tlpsrc/lni.tlpsrc b/Master/tlpkg/tlpsrc/lni.tlpsrc
new file mode 100755
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/lni.tlpsrc