texlive[43730] Master: new lni (10Apr17)

commits+preining at tug.org commits+preining at tug.org
Mon Apr 10 03:15:24 CEST 2017


Revision: 43730
          http://tug.org/svn/texlive?view=revision&revision=43730
Author:   preining
Date:     2017-04-10 03:15:24 +0200 (Mon, 10 Apr 2017)
Log Message:
-----------
new lni (10Apr17)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/bibtex/bst/lni/
    trunk/Master/texmf-dist/bibtex/bst/lni/lni.bst
    trunk/Master/texmf-dist/bibtex/bst/lni/lnig.bst
    trunk/Master/texmf-dist/doc/latex/lni/
    trunk/Master/texmf-dist/doc/latex/lni/README.md
    trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
    trunk/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf
    trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
    trunk/Master/texmf-dist/source/latex/lni/
    trunk/Master/texmf-dist/source/latex/lni/lni.dtx
    trunk/Master/texmf-dist/source/latex/lni/lni.ins
    trunk/Master/texmf-dist/tex/latex/lni/
    trunk/Master/texmf-dist/tex/latex/lni/lni.cls
    trunk/Master/tlpkg/tlpsrc/lni.tlpsrc

Added: trunk/Master/texmf-dist/bibtex/bst/lni/lni.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/lni/lni.bst	                        (rev 0)
+++ trunk/Master/texmf-dist/bibtex/bst/lni/lni.bst	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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'.


Property changes on: trunk/Master/texmf-dist/bibtex/bst/lni/lni.bst
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/bibtex/bst/lni/lnig.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/lni/lnig.bst	                        (rev 0)
+++ trunk/Master/texmf-dist/bibtex/bst/lni/lnig.bst	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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'.


Property changes on: trunk/Master/texmf-dist/bibtex/bst/lni/lnig.bst
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/lni/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lni/README.md	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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 at 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


Property changes on: trunk/Master/texmf-dist/doc/latex/lni/README.md
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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 at author1}}\and
+ Vorname2 Nachname2\footnote{Einrichtung/Universität, Abteilung, Anschrift, Postleitzahl Ort, \email{emailadresse at 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}


Property changes on: trunk/Master/texmf-dist/doc/latex/lni/lni-author-template.tex
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf	2017-04-10 01:15:24 UTC (rev 43730)
@@ -0,0 +1 @@
+link lni.pdf
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/lni/lni-instructions.pdf
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lni/lni.pdf	2017-04-10 00:06:23 UTC (rev 43729)
+++ trunk/Master/texmf-dist/doc/latex/lni/lni.pdf	2017-04-10 01:15:24 UTC (rev 43730)

Property changes on: trunk/Master/texmf-dist/doc/latex/lni/lni.pdf
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/lni/lni.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lni/lni.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/lni/lni.dtx	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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 at 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 at Option%
+}%
+\newcommand*\Describe at 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 at 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 at author1}} \and%
+%    Author 2\footnote{Affiliations including \email{email at 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 at afterend},\\
+% just clean up (remove \texttt{paper.aux}) and recompile.
+% \item If the compiler error is\\
+% \texttt{! Package xkeyval Error: 'family\_i'
+% undefined in families blx at opt@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 at 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 at th
+        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+        mu$}\hfill
+     \nobreak
+     \hb at 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 at 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 at xt@\z@{\hss\@textsuperscript{\normalfont\@thefnmark}\,}##1}
+    \if at twocolumn
+      \ifnum \col at 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 at xt@\hsize{\hfil\box\@tempboxa\hfil}%
+  \fi}
+  \vskip\belowcaptionskip}
+%    \end{macrocode}
+% Abbildungen
+%    \begin{macrocode}
+\def\fps at figure{htbp}
+\def\fnum at figure{\figurename~\thefigure}
+\def\@floatboxreset{%
+        \reset at 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 at table{htbp}
+\def\fnum at 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 at float}
+\renewenvironment{table*}
+               {\setlength\abovecaptionskip{6\p@}%
+                \setlength\belowcaptionskip{0\p@}%
+                \@dblfloat{table}}
+               {\end at 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 at processline{\hskip0.5cm\the\verbatim at 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 at 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 at 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 at enumiv}}%
+   {\settowidth\labelwidth{\@biblabel{#1}}%
+      \leftmargin\labelwidth
+      \advance\leftmargin\labelsep
+      \@openbib at code
+      \usecounter{enumiv}%
+      \let\p at enumiv\@empty
+      \renewcommand\theenumiv{\@arabic\c at enumiv}}%
+   \sloppy
+   \clubpenalty4000
+   \@clubpenalty \clubpenalty
+   \widowpenalty4000%
+   \sfcode`\.\@m}
+{\def\@noitemerr
+   {\@latex at 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 at author1}}\and
+ Vorname2 Nachname2\footnote{Einrichtung/Universität, Abteilung, Anschrift, Postleitzahl Ort, \email{emailadresse at 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 


Property changes on: trunk/Master/texmf-dist/source/latex/lni/lni.dtx
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/lni/lni.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lni/lni.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/lni/lni.ins	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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 at 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 at 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'.


Property changes on: trunk/Master/texmf-dist/source/latex/lni/lni.ins
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lni/lni.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lni/lni.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lni/lni.cls	2017-04-10 01:15:24 UTC (rev 43730)
@@ -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 at 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 at 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 at th
+        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+        mu$}\hfill
+     \nobreak
+     \hb at 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 at 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 at xt@\z@{\hss\@textsuperscript{\normalfont\@thefnmark}\,}##1}
+    \if at twocolumn
+      \ifnum \col at 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 at xt@\hsize{\hfil\box\@tempboxa\hfil}%
+  \fi}
+  \vskip\belowcaptionskip}
+\def\fps at figure{htbp}
+\def\fnum at figure{\figurename~\thefigure}
+\def\@floatboxreset{%
+        \reset at 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 at table{htbp}
+\def\fnum at 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 at float}
+\renewenvironment{table*}
+               {\setlength\abovecaptionskip{6\p@}%
+                \setlength\belowcaptionskip{0\p@}%
+                \@dblfloat{table}}
+               {\end at dblfloat}
+\setlength{\mathindent}{0.5cm}
+\RequirePackage{verbatim}
+\def\verbatim at processline{\hskip0.5cm\the\verbatim at 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 at 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 at 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 at enumiv}}%
+   {\settowidth\labelwidth{\@biblabel{#1}}%
+      \leftmargin\labelwidth
+      \advance\leftmargin\labelsep
+      \@openbib at code
+      \usecounter{enumiv}%
+      \let\p at enumiv\@empty
+      \renewcommand\theenumiv{\@arabic\c at enumiv}}%
+   \sloppy
+   \clubpenalty4000
+   \@clubpenalty \clubpenalty
+   \widowpenalty4000%
+   \sfcode`\.\@m}
+{\def\@noitemerr
+   {\@latex at 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'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lni/lni.cls
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-04-10 00:06:23 UTC (rev 43729)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-04-10 01:15:24 UTC (rev 43730)
@@ -370,7 +370,7 @@
     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

Modified: trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2017-04-10 00:06:23 UTC (rev 43729)
+++ trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2017-04-10 01:15:24 UTC (rev 43730)
@@ -81,6 +81,7 @@
 depend ksp-thesis
 depend langsci
 depend lion-msc
+depend lni
 depend lps
 depend matc3
 depend matc3mem

Index: trunk/Master/tlpkg/tlpsrc/lni.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/lni.tlpsrc	2017-04-10 00:06:23 UTC (rev 43729)
+++ trunk/Master/tlpkg/tlpsrc/lni.tlpsrc	2017-04-10 01:15:24 UTC (rev 43730)

Property changes on: trunk/Master/tlpkg/tlpsrc/lni.tlpsrc
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property


More information about the tex-live-commits mailing list