/LNCS

Improved Lecture Notes in Computer Science (LNCS) template

Primary LanguageTeX

Simplified LNCS Template Build Status

Quick start for modern LaTeXing with LNCS.

TOC

Features

  • Support for German documents (without broken headers): Contains a fix to increase compatibility with Babel. See https://tex.stackexchange.com/a/441701/9075 for details.
  • Provides a skeletal paper.tex file.
  • Generated PDF allows for copy and paste of text without getting words with ligatures such as "workflow" destroyed. This is enabled by glyphtounicode, which encodes ligatures (such as fl) using unicode characters.
  • Automatic setting of "Fig." and "Section"/"Sect." according to the LNCS style. Just use \Cref{sec:xy} at the beginning of a sentence and \cref{sec:xy} in the middle of a sentence. Thanx to cleveref.
  • Support of hyperlinked references without extra color thanx to hyperref.
  • Better breaking of long URLs.
  • Sharper font (still compatible with Springer's requirements).
  • Support for \powerset command.
  • Support todos as pdf annotations. This is enabled by the pdfcomment package.
  • microtypographic extensions for a better look of the paper.
  • Adds modern packages such as microtype, cleveref, csquotes, paralist, hyperref, hypcap, upquote, natbib, booktabs, cfr-lm.
  • Optional: Support for minted package. Uncomment \usepackage[newfloat]{minted} to get started.
  • Optional: Compile with lualatex instead of pdflatex.
  • Ready-to-go configuration for latexindent.

Examples:

Background

The official template is available at https://www.springer.com/gp/computer-science/lncs/conference-proceedings-guidelines --> "Templates, samples files & useful links" --> "LaTeX2e Proceedings Templates (zip)" Deep link: ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip.

The class file authored by Springer is needed to get the template working: llncs.cls You get it from inside the ZIP of llncs2e.zip available at ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip.

Reason: Licensing restrictions of Springer do not allow distribution outside of springer. See message #47 for debian bug 31897 for details. Therefore, the required file llncs.cls has to be downloaded in some way. Follow the quick start instructions.

Quick start

  • Click on Download ZIP or here.
  • Extract LNCS-master.zip in the folder where you want to write your paper.
  • Place llncs.cls into the directory
    • Download llncs2e.zip from ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip and extract it in the directory. On Linux, just execute download-llncs-files-from-springer.sh.
    • In case ftp does not work at your side, you can try online ftp services such as http://www.net2ftp.com/ to download the files. Open the connection to ftp.springernature.com and navigate to cs-proceeding, llncs, and download the ZIP archive.
  • Edit paper.tex.
  • latexmk paper.

As you see on CircleCI, the paper compiles out of the box. There is no need to adjust the packages or to remove some of them. This might lead to undesiered results such as hyperlinks not working any more or no good microtypographic features. In case you think, a package needs to be altered or added, feel free to open an issue.

Tool hints

There is currently no official biblatex support. A first step towards that is done at biblatex-lncs.

MiKTeX installation hints are given at https://github.com/latextemplates/scientific-thesis-template/blob/template/README.md#installation-hints-for-windows.

In case you want to get started using minted, do following steps:

  1. Install python: choco install python - that uses chocolatey to install Python
  2. Install pygments: pip instal pygments - that uses the Pyhton package manager to install the pygments library
  3. When latexing, use -shell-escape: pdflatex -shell-escape paper. You can also just execute latexmk paper.

Using the template with your git repository

  1. Initialize your git repository as usual
  2. Add this repository as upstream: git remote add upstream https://github.com/latextemplates/LNCS.git
  3. Merge the branch upstream/master into your master branch: git merge upstream/master.

After that you can use and push the master branch as usual. Notes on syncing with the upstream repository are available from GitHub.

FAQ

Q: ShareLaTeX outputs a warning regarding the llncs class

ShareLaTeX might output following warning:

LaTeX Warning: You have requested, on input line 8, version 2018/03/10' of document class llncs, but only version 2004/08/17 v2.14 LaTeX document class for Lecture Notes in Computer Science' is available.

The reason is that you did not use llncs.cls from a recent llncs2e.zip (which can be downloaded from ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip), but a copy from somewhere else. Please use the latest version offered by Springer.

Q: I get the error ! pdfTeX error (font expansion): auto expansion is only possible with scalable fonts.

Install the cm-super package using the MiKTeX package manager. Then, run initexmf --mkmaps on the command line. (Long description: http://tex.stackexchange.com/a/324972/9075)

Q: I need more space. What can I do?

The most simple solution to get more space is to exchange the font. You can disable the cfr-lm package by the newtx package's newtxtext and newtxmath. This effectively switches the font from Computer Modern to Times Roman.

This switch is prepared in the template. Exchange

\iftrue % use default-font

by

\iffalse

Q: How can I reformat my .tex files?

Execute following command:

latexindent -l -s -sl -w paper.tex

Q: I want to obey the one-sentence-per-line rule. How can I do that?

Execute following command:

latexindent -m -l -s -sl -w paper.tex

Attention! This is work in progress and does not always produce best results.

Q: Is it possible to have a footer indicating that the paper is intended to be submitted/submitted/published?

Activate the llncsconf package. The possible options are listed in paper.tex.

Q: Can I also write in German?

Yes.

  1. Pass parameter ngerman to the document class:

    \documentclass[english,runningheads,a4paper]{llncs}[2018/03/10]
  2. Please search for babel in paper.tex and use

    \usepackage[english,ngerman]{babel}

    instead of

    \usepackage[ngerman,english]{babel}

Development

Reindent:

latexindent -y="indentPreamble:1,defaultIndent:'  '" -m -w paper.tex`

If you like this work, please consider donating via Liberapay!

Links