generator-latex-template 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # LaTeX Template Generator [![npm version](http://img.shields.io/npm/v/generator-latex-template.svg?style=flat)](https://npmjs.org/package/generator-latex-template "View this project on npm")
2
2
 
3
- > Generates latextemplates (e.g., for thesis, workshops, conferences, IEEEtran, LNCS, ...) out of "micro-templates"
3
+ > Generates latex templates (e.g., for thesis, workshops, conferences, IEEEtran, LNCS, ...) out of "micro-templates"
4
4
 
5
5
  See the **[talk about the generator](https://github.com/dante-ev/Vortraege_Tagungen/blob/master/2019-Herbst/Oliver%20Kopp%20-%20The%20LaTeX%20Template%20Generator%20-%20dante2019-herbst.pdf)** for an overview on the aims and the general concept.
6
6
 
@@ -40,7 +40,7 @@ npx -p yo -p generator-latex-template -c 'yo latex-template'
40
40
 
41
41
  ### Installing `generator-latex-template`
42
42
 
43
- In case one wants to have the generator installed permanently or `npx` does work as exepcted, one can install `generator-latex-template` using following command:
43
+ In case one wants to have the generator installed permanently or `npx` does work as expected, one can install `generator-latex-template` using following command:
44
44
 
45
45
  ```bash
46
46
  npm install -g generator-latex-template
@@ -108,16 +108,16 @@ In the long run, the contents of the `paper.tex` (and similar) files in reposito
108
108
  - Run `npx yo <path-to-git-repository>`
109
109
  - Windows: `npx yo c:\git-repositories\latextemplates\generator-latex-template`
110
110
  - Parameters can be set using command line
111
- - Linux: `npx yo /tmp/repo --documentclass=lncs --overleaf=false --texlive=2021 --latexcompiler=pdflatex --bibtextool=bibtex --docker=false --language=en --font=default --listings=listings --cleveref=true --enquotes=csquotes --tweak_outerquote=babel --todo=pdfcomment --howtotext=true --examples=true`
112
- - Windows: `npx yo c:\git-repositories\latextemplates\generator-latex-template --documentclass=scientific-thesis --overleaf=false --texlive=2021 --latexcompiler=pdflatex --bibtextool=bibtex --docker=false --language=en --font=default --listings=listings --cleveref=true --enquotes=csquotes --tweak_outerquote=babel --todo=pdfcomment --howtotext=true --examples=true`
113
- - Windows automatic generation of a LNCS template (with pdflatex and bibtex): `npx yo c:\git-repositories\latextemplates\generator-latex-template --documentclass=lncs --overleaf=false --texlive=2021 --latexcompiler=pdflatex --bibtextool=bibtex --docker=false --language=en --font=default --listings=listings --cleveref=true --enquotes=csquotes --tweak_outerquote=babel --todo=pdfcomment --howtotext=true --examples=true`
111
+ - Linux: `npx yo /tmp/repo --documentclass=lncs --papersize=a4 --latexcompiler=pdflatex --bibtextool=bibtex --overleaf=false --texlive=2022 --docker=false --language=en --font=default --listings=listings --enquotes=csquotes --tweak_outerquote=babel --todo=pdfcomment --examples=true --howtotext=true`
112
+ - Windows: `npx yo c:\git-repositories\latextemplates\generator-latex-template --documentclass=scientific-thesis --papersize=a4 --latexcompiler=pdflatex --bibtextool=bibtex --overleaf=false --texlive=2022 --language=en --font=default --listings=listings --enquotes=csquotes --tweak_outerquote=babel --todo=pdfcomment --examples=true --howtotext=true`
113
+ - Windows automatic generation of a LNCS template (with pdflatex and bibtex): `npx yo c:\git-repositories\latextemplates\generator-latex-template --documentclass=lncs ---papersize=a4 --latexcompiler=pdflatex --bibtextool=bibtex --overleaf=false --texlive=2022 --docker=false --language=en --font=default --listings=listings --enquotes=csquotes --tweak_outerquote=babel --todo=pdfcomment --examples=true --howtotext=true`
114
114
  - Run `latexmk` to build the PDF
115
115
  - Update npm dependencies
116
116
  - `npx npm-update-all`. See [FreeCodeCamp](https://www.freecodecamp.org/news/10-npm-tricks-that-will-make-you-a-pro-a945982afb25/) for more details.
117
117
  - `npx npm-check-updates -u`. [[Source](https://www.carlrippon.com/upgrading-npm-dependencies/)]
118
118
  - See <https://github.com/yeoman/generator/releases> for changes in the generator.
119
119
  - When one encounters `Cannot find module 'yeoman-generator'`, please update the npm dependencies.
120
- That error ocurred when using version `4.13.0` and `5.4.2` was available.
120
+ That error occurred when using version `4.13.0` and `5.4.2` was available.
121
121
  - In case of the error "Error: EACCES, permission denied '/root/.config/configstore/insight-yo.json'", one needs to execute `chmod g+rwx /root /root/.config /root/.config/configstore`
122
122
  - Check GitHub actions
123
123
  - Use [actionlint](https://github.com/rhysd/actionlint#readme)
@@ -144,10 +144,6 @@ In the long run, the contents of the `paper.tex` (and similar) files in reposito
144
144
  <% break; } -%>
145
145
  ```
146
146
 
147
- ```ejs
148
- <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~<% } else { %>Section~<% } %>{sec:relatedwork}
149
- ```
150
-
151
147
  ### Debugging
152
148
 
153
149
  A `launch.json` configured for Windows and Visual Studio Code is included.
@@ -130,9 +130,6 @@ module.exports = class extends Generator {
130
130
  {
131
131
  type: 'list',
132
132
  name: 'papersize',
133
- when: function(response) {
134
- return response.documentclass === 'ieee';
135
- },
136
133
  message: 'Which paper size to use?',
137
134
  choices: [
138
135
  {
@@ -144,7 +141,7 @@ module.exports = class extends Generator {
144
141
  value: "letter"
145
142
  }
146
143
  ],
147
- default: "a4paper"
144
+ default: "a4"
148
145
  },
149
146
  {
150
147
  type: 'list',
@@ -313,12 +310,6 @@ module.exports = class extends Generator {
313
310
  ],
314
311
  default: "listings"
315
312
  },
316
- {
317
- type: 'confirm',
318
- name: 'cleveref',
319
- message: 'Use cleveref?',
320
- default: true
321
- },
322
313
  {
323
314
  type: 'list',
324
315
  name: 'enquotes',
@@ -14,9 +14,9 @@ jobs:
14
14
  - 5000:5000
15
15
  steps:
16
16
  - name: Set up QEMU
17
- uses: docker/setup-qemu-action@v1
17
+ uses: docker/setup-qemu-action@v2
18
18
  - name: Set up Docker Buildx
19
- uses: docker/setup-buildx-action@v1
19
+ uses: docker/setup-buildx-action@v2
20
20
  with:
21
21
  driver-opts: network=host
22
22
  - name: Cache Docker layers
@@ -25,7 +25,7 @@ jobs:
25
25
  path: /tmp/.buildx-cache
26
26
  key: ${{ runner.os }}-buildx
27
27
  - name: Build Docker image
28
- uses: docker/build-push-action@v2
28
+ uses: docker/build-push-action@v3
29
29
  with:
30
30
  push: true
31
31
  tags: localhost:5000/name/app:latest
@@ -85,11 +85,9 @@ Following features are enabled in this template:
85
85
  <% if (howtotext) { -%>
86
86
  - Hints on writing an abstract and thesis by Dirk Fahland.
87
87
  <% } -%>
88
- <% if (cleveref || githubpublish) { -%>
89
- - <% if (githubpublish) { -%>(Optional) <% } %>Automatic setting of "Fig." and "Section"/"Sect." according to the LNCS style.
88
+ - Automatic setting of "Fig." and "Section"/"Sect." according to the LNCS style.
90
89
  Just use `\Cref{sec:xy}` at the beginning of a sentence and `\cref{sec:xy}` in the middle of a sentence.
91
90
  Thanx to [cleveref].
92
- <% } -%>
93
91
  <% if (font == "default" || githubpublish) { -%>
94
92
  - Sharper font (still compatible with Springer's requirements).
95
93
  <% } -%>
@@ -108,7 +106,7 @@ Following features are enabled in this template:
108
106
  - <% if (githubpublish) { -%>(Optional) <% } %>Support todos as pdf annotations. This is enabled by the [pdfcomment] package.
109
107
  <% } -%>
110
108
  - [microtypographic extensions](https://www.ctan.org/pkg/microtype) for a better look of the paper.
111
- - Modern packages such as [microtype]<% if (cleveref || githubpublish) { %>, [cleveref]<% } %><% if (enquotes == "csquotes" || githubpublish) { %>, [csquotes]<% } %><% if (documentclass != 'lncs') { %>, [paralist]<% } %>, [hyperref], [hypcap], [upquote]<% if (documentclass == 'lncs') { %>, [natbib]<% } %>, [booktabs].
109
+ - Modern packages such as [microtype], [cleveref]<% if (enquotes == "csquotes" || githubpublish) { %>, [csquotes]<% } %><% if (documentclass != 'lncs') { %>, [paralist]<% } %>, [hyperref], [hypcap], [upquote]<% if (documentclass == 'lncs') { %>, [natbib]<% } %>, [booktabs].
112
110
  <% if (latexcompiler == "lualatex" || githubpublish) { -%>
113
111
  - <% if (githubpublish) { -%>(Optional) <% } %>LaTeX compilation using the modern lualatex compiler.
114
112
  <% } -%>
@@ -130,11 +128,6 @@ You can <% if (!githubpublish) { %>re<% } %>run the [latex template generator] t
130
128
  Contains a fix to increase compatibility with Babel.
131
129
  See <https://tex.stackexchange.com/a/441701/9075> for details.
132
130
  <% } -%>
133
- <% if (cleveref) { missingFeatures = true; -%>
134
- - Automatic setting of "Fig." and "Section"/"Sect." according to the LNCS style.
135
- Just use `\Cref{sec:xy}` at the beginning of a sentence and `\cref{sec:xy}` in the middle of a sentence.
136
- Thanx to [cleveref].
137
- <% } -%>
138
131
  <% } -%>
139
132
  <% if (listings != "minted") { missingFeatures = true; -%>
140
133
  - Typesetting of listings using advanced highlighting powered by the [minted] package.
@@ -142,8 +135,8 @@ You can <% if (!githubpublish) { %>re<% } %>run the [latex template generator] t
142
135
  <% if (todo == "none") { missingFeatures = true; -%>
143
136
  - Support todos as pdf annotations. This is enabled by the [pdfcomment] package.
144
137
  <% } -%>
145
- <% if (!cleveref || enquotes == "plainlatex") { -%>
146
- - Modern packages such as <% if (!cleveref) { missingFeatures = true; %>, [cleveref]<% } %><% if (enquotes == "plainlatex") { missingFeatures = true; %>, [csquotes]<% } %>.
138
+ <% if (enquotes == "plainlatex") { -%>
139
+ - Modern packages such as <% if (enquotes == "plainlatex") { missingFeatures = true; %>[csquotes]<% } %>.
147
140
  <% } -%>
148
141
  <% if (latexcompiler != "lualatex") { -%>
149
142
  - LaTeX compilation using the modern lualatex compiler.
@@ -1,11 +1,7 @@
1
1
  <%= heading2 %>{Abbildungen}
2
2
 
3
3
  <%- bexample %>
4
- <% if (cleveref) { -%>
5
4
  \Cref{fig:label} zeigt etwas Interessantes
6
- <% } else { -%>
7
- Figure~\ref{fig:label} zeigt etwas Interessantes.
8
- <% } -%>
9
5
 
10
6
  \begin{figure}
11
7
  \centering
@@ -1,11 +1,7 @@
1
1
  <%= heading2 %>{Figures}
2
2
 
3
3
  <%- bexample %>
4
- <% if (cleveref) { -%>
5
4
  \Cref{fig:label} shows something interesting.
6
- <% } else { -%>
7
- Figure~\ref{fig:label} shows something interesting.
8
- <% } -%>
9
5
 
10
6
  \begin{figure}
11
7
  \centering
@@ -17,8 +13,8 @@ Figure~\ref{fig:label} shows something interesting.
17
13
  <%- include('floatflt.example.en.tex', this); %>
18
14
  <% if (documentclass == 'ieee') { -%>
19
15
 
20
- One can span a figure across mulitple columns by using \verb+\begin{figure*}+.
21
- See <% if (cleveref) { %>\cref<% } else { %>Fig.~\ref<% } %>{fig:16x9} as an example.
16
+ One can span a figure across multiple columns by using \verb+\begin{figure*}+.
17
+ See \cref{fig:16x9} as an example.
22
18
 
23
19
  <%- bexample %>
24
20
  \begin{figure*}
@@ -1,13 +1,8 @@
1
1
  <%= heading2 %>{Quellcode}
2
2
 
3
3
  <%- bexample %>
4
- <% if (cleveref) { -%>
5
4
  \Cref{lst:XML} zeigt XML-Quelltext.
6
5
  \Cref{line:comment} enthält einen Kommentar.
7
- <% } else { -%>
8
- Listing~\ref{fig:label} zeigt XML-Quelltext.
9
- Zeile~\ref{line:comment} enthält einen Kommentar.
10
- <% } -%>
11
6
 
12
7
  \begin{lstlisting}[
13
8
  language=XML,
@@ -21,11 +16,7 @@ Zeile~\ref{line:comment} enthält einen Kommentar.
21
16
  <%- eexample %>
22
17
 
23
18
  Der zusätzliche Paramter \verb+float+ führt dazu, dass das Listing auch floated.
24
- <% if (cleveref) { -%>
25
19
  \Cref{lst:flXML} zeigt das gleitendede Listing.
26
- <% } else { -%>
27
- Listing~\ref{lst:flXML} zeigt das gleitendede Listing.
28
- <% } -%>
29
20
 
30
21
  <%- bexample %>
31
22
  \begin{lstlisting}[
@@ -42,11 +33,7 @@ Listing~\ref{lst:flXML} zeigt das gleitendede Listing.
42
33
  \end{lstlisting}
43
34
  <%- eexample %>
44
35
 
45
- <% if (cleveref) { -%>
46
36
  Es ist möglich auch JSON zu setzen, wie in \cref{lst:json} gezeigt.
47
- <% } else { -%>
48
- Es ist möglich auch JSON zu setzen, wie in Listing~\ref{lst:json} gezeigt.
49
- <% } -%>
50
37
 
51
38
  <%- bexample %>
52
39
  \begin{lstlisting}[
@@ -60,11 +47,7 @@ Es ist möglich auch JSON zu setzen, wie in Listing~\ref{lst:json} gezeigt.
60
47
  \end{lstlisting}
61
48
  <%- eexample %>
62
49
 
63
- <% if (cleveref) { -%>
64
50
  Java ist auch möglich -- \cref{lst:java}.
65
- <% } else { -%>
66
- Java ist auch möglich -- Listing~\ref{lst:java}.
67
- <% } -%>
68
51
 
69
52
  <%- bexample %>
70
53
  \begin{lstlisting}[
@@ -1,8 +1,8 @@
1
1
  <%= heading2 %>{Source Code}
2
2
 
3
3
  <%- bexample %>
4
- <% if (cleveref) { %>\Cref<% } else { %>Listing~\ref<% } %>{lst:XML} shows source code written in XML.
5
- <% if (cleveref) { %>\Cref<% } else { %>Line~\ref<% } %>{line:comment} contains a comment.
4
+ \Cref{lst:XML} shows source code written in XML.
5
+ \Cref{line:comment} contains a comment.
6
6
 
7
7
  \begin{lstlisting}[
8
8
  language=XML,
@@ -15,8 +15,8 @@
15
15
  \end{lstlisting}
16
16
  <%- eexample %>
17
17
 
18
- One can also add \verb+float+ as paramter to have the listing floating.
19
- <% if (cleveref) { %>\Cref<% } else { %>Listing~\ref<% } %>{lst:flXML} shows the floating listing.
18
+ One can also add \verb+float+ as parameter to have the listing floating.
19
+ \Cref{lst:flXML} shows the floating listing.
20
20
 
21
21
  <%- bexample %>
22
22
  \begin{lstlisting}[
@@ -33,7 +33,7 @@ One can also add \verb+float+ as paramter to have the listing floating.
33
33
  \end{lstlisting}
34
34
  <%- eexample %>
35
35
 
36
- One can also typeset JSON as shown in <% if (cleveref) { %>\cref<% } else { %>Listing~<% } %>{lst:json}.
36
+ One can also typeset JSON as shown in \cref{lst:json}.
37
37
 
38
38
  <%- bexample %>
39
39
  \begin{lstlisting}[
@@ -47,7 +47,7 @@ One can also typeset JSON as shown in <% if (cleveref) { %>\cref<% } else { %>Li
47
47
  \end{lstlisting}
48
48
  <%- eexample %>
49
49
 
50
- Java is also possible as shown in <% if (cleveref) { %>\cref<% } else { %>Listing~<% } %>{lst:java}.
50
+ Java is also possible as shown in \cref{lst:java}.
51
51
 
52
52
  <%- bexample %>
53
53
  \begin{lstlisting}[
@@ -6,6 +6,7 @@
6
6
 
7
7
  <% } -%>
8
8
  % !TeX spellcheck = de-DE
9
+ % LTeX: language=de-DE
9
10
  % !TeX encoding = utf8
10
11
  % !TeX program = <%= latexcompiler %>
11
12
  % !BIB program = <%= bibtextool %>
@@ -126,8 +127,7 @@
126
127
  <%- include('siunitx.preamble.en.tex'); %>
127
128
  <%- include('hyperref.preamble.de.tex', this); %>
128
129
  <% if (texlive >= 2021) { %><%- include('mindflow.preamble.en.tex', this); %><% } -%>
129
- <% if (cleveref) { %><%- include('cleveref.preamble.de.tex', this); %><% } -%>
130
-
130
+ <%- include('cleveref.preamble.de.tex', this); %>
131
131
  \usepackage{lipsum}
132
132
  <% if (examples) { -%>
133
133
 
@@ -234,9 +234,12 @@
234
234
  \label{sec:intro}
235
235
  \lipsum[1-3]\todo{Refine me}
236
236
 
237
- The remainder of the paper starts with a presentation of related work (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~<% } else { %>Section~<% } %>{sec:relatedwork}).
238
- <% if (examples) { %>It is followed by a presentation of hints on \LaTeX{} (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~<% } else { %>Section~<% } %>{sec:latexhints}).<% } -%>
239
- Finally, a conclusion is drawn and outlook on future work is made (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~<% } else { %>Section~<% } %>{sec:outlook}).
237
+ The remainder of the paper starts with a presentation of related work (\cref{sec:relatedwork}).
238
+ <% if (examples) { %>It is followed by a presentation of hints on \LaTeX{} (\cref{sec:latexhints}).
239
+ <% } -%>
240
+ <% if (!examples && (documentclass == 'ieee')) { %>Afterwards, we present some Lorem Ipsum (\cref{sec:loremipsum}).
241
+ <% } -%>
242
+ Finally, a conclusion is drawn and outlook on future work is made (\cref{sec:outlook}).
240
243
 
241
244
  \section{Related Work}
242
245
  \label{sec:relatedwork}
@@ -409,7 +412,7 @@ Hier sollen allgemeine \LaTeX-Hinweise gegeben werden, damit man Minimalbeispiel
409
412
  <%- include('siunitx.example.en.tex', this); %>
410
413
  <% if (enquotes == 'csquotes') { %><%- include('csquotes.example.en.tex', this); %><% } -%>
411
414
  <% if (enquotes == 'plainlatex') { %><%- include('plainlatex.enquotes.example.de.tex', this); %><% } -%>
412
- <% if (cleveref) { %><%- include('cleveref.example.en.tex', this); %><% } -%>
415
+ <%- include('cleveref.example.en.tex', this); %>
413
416
  <%- include('figure.example.de.tex', this); %>
414
417
  <%- include('tables.example.en.tex', this); %>
415
418
  <% if (listings == 'listings') { -%>
@@ -437,10 +440,10 @@ When you use \href{https://www.jabref.org}{JabRef}, you can use the clean up com
437
440
  See \url{https://help.jabref.org/en/CleanupEntries} for an overview of the cleanup functionality.
438
441
 
439
442
  \renewcommand{\bibsection}{\section*{Literatur}} % requried for natbib to have "References" printed and as section*, not chapter*
440
- % Use natbib compatbile splncsnat style.
443
+ % Use natbib compatbile splncs04nat style.
441
444
  % It does provide all features of splncs03, but is developed in a clean way.
442
445
  % Source: http://phaseportrait.blogspot.de/2011/02/natbib-compatible-bibtex-style-bst-file.html
443
- \bibliographystyle{splncsnat}
446
+ \bibliographystyle{splncs04nat}
444
447
  \begingroup
445
448
  \microtypecontext{expansion=sloppy}
446
449
  \small % ensure correct font size for the bibliography
@@ -9,6 +9,7 @@
9
9
 
10
10
  <% break; } -%>
11
11
  % !TeX spellcheck = en-US
12
+ % LTeX: language=en-US
12
13
  % !TeX encoding = utf8
13
14
  % !TeX program = <%= latexcompiler %>
14
15
  <% if (requiresShellEscape) { -%>
@@ -37,13 +38,13 @@
37
38
  % it is good to have title printed on the pages, too.
38
39
  %
39
40
  % To disable outputting page headers and footers, remove "runningheads"
40
- \documentclass[runningheads,a4paper,english]{llncs}[2022/01/12]
41
+ \documentclass[runningheads,<%= papersize %>paper,english]{llncs}[2022/01/12]
41
42
  <% break; case "acmart": -%>
42
43
 
43
44
  <% if (texlive >= 2021) { -%>
44
45
  % We balance the last page using the package "pbalance" (see https://ctan.org/pkg/pbalance), because it "just works" (in contrast to balance.sty or other solutions)
45
46
  <% } -%>
46
- \documentclass[<%= acm_format %>,<% if (acm_review) { %>review,<% } %><% if (texlive >= 2021) { %>pbalance<% } else { %>balance<% } %>]{acmart}
47
+ \documentclass[<%= acm_format %>,<% if (acm_review) { %>review,<% } %><%= papersize %>paper,<% if (texlive >= 2021) { %>pbalance<% } else { %>balance<% } %>]{acmart}
47
48
  <% break; case "ieee": -%>
48
49
 
49
50
  % DO NOT DOWNLOAD IEEEtran.cls - Use the one of your LaTeX distribution
@@ -172,8 +173,7 @@
172
173
  <%- include('subfig.preamble.en.tex', this); %>
173
174
  <% if (texlive >= 2021) { %><%- include('mindflow.preamble.en.tex', this); %>
174
175
  <% } -%>
175
- <% if (cleveref) { %><%- include('cleveref.preamble.en.tex', this); %>
176
- <% } -%>
176
+ <%- include('cleveref.preamble.en.tex', this); %>
177
177
  \usepackage{lipsum}
178
178
  <% if (examples) { -%>
179
179
 
@@ -218,17 +218,20 @@
218
218
  <% break; case "lncs": -%>
219
219
 
220
220
  % Add copyright
221
- % Do that for the final version or if you send it to colleagues
221
+ %
222
+ % This is recommended if you intend to send the version to colleagues
223
+ % See https://ctan.org/pkg/llncsconf for details
222
224
  \iffalse
223
- %state: intended|submitted|llncs
224
- %you can add "crop" if the paper should be cropped to the format Springer is publishing
225
+ % state: intended | submitted | llncs
226
+ % you can add "crop" if the paper should be cropped to the format Springer is publishing
225
227
  \usepackage[intended]{llncsconf}
226
228
 
227
229
  \conference{name of the conference}
228
230
 
229
- %in case of "llncs" (final version!)
230
- %example: llncs{Anonymous et al. (eds). \emph{Proceedings of the International Conference on \LaTeX-Hacks}, LNCS~42. Some Publisher, 2016.}{0042}
231
- \llncs{book editors and title}{0042} %% 0042 is the start page
231
+ % in case of "proceedings" (final version!)
232
+ % example: \llncs{Anonymous et al. (eds). \emph{Proceedings of the International Conference on \LaTeX-Hacks}, LNCS~42. Some Publisher, 2016.}{0042}
233
+ % 0042 denotes an example start page
234
+ \llncs{book editors and title}{0042}
232
235
  \fi
233
236
  <% break; case "scientific-thesis": -%>
234
237
 
@@ -459,7 +462,7 @@
459
462
  %
460
463
  This template will mark various parts of the structure with SM1-SM6 to recall to you which step of a scientific argument is used and where.
461
464
 
462
- \emph{Purpose and scope of <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Chapter~\ref<% } %>{sec:introduction}}. The introduction chapter is a summary of your work and your scientific argument that shall be understandable to anyone in your scientific field, e.g., anyone in Data Science. A reader must be able to comprehend the problem, method, relevant execution details, results, and their interpretation by reading the introduction and the introduction alone. Section~\ref{sec:introduction:topic} introduces the general topic of your research. Section~\ref{sec:introduction:state-of-art} discusses the state of the art and identifies a research. Section~\ref{sec:introduction:research-question} then states the research problem to investigate. Section~\ref{sec:problem-exposition:research-method} explains the research method that was followed, possibly with execution details. Section~\ref{sec:introduction:results} then presents the results and their interpretation. Only if a reader thinks they are not convinced or they need more details to reproduce your study, they shall have to read further. The individual chapters and sections provide the details for each of the steps in your scientific argument.
465
+ \emph{Purpose and scope of \cref{sec:introduction}}. The introduction chapter is a summary of your work and your scientific argument that shall be understandable to anyone in your scientific field, e.g., anyone in Data Science. A reader must be able to comprehend the problem, method, relevant execution details, results, and their interpretation by reading the introduction and the introduction alone. Section~\ref{sec:introduction:topic} introduces the general topic of your research. Section~\ref{sec:introduction:state-of-art} discusses the state of the art and identifies a research. Section~\ref{sec:introduction:research-question} then states the research problem to investigate. Section~\ref{sec:problem-exposition:research-method} explains the research method that was followed, possibly with execution details. Section~\ref{sec:introduction:results} then presents the results and their interpretation. Only if a reader thinks they are not convinced or they need more details to reproduce your study, they shall have to read further. The individual chapters and sections provide the details for each of the steps in your scientific argument.
463
466
 
464
467
  You usually write the introduction chapter \emph{after} you wrote all other chapters, but you should keep on making notes for each of the sections as you write the later chapters..
465
468
 
@@ -478,23 +481,23 @@ At the end of this section, you have explained and established a general goal th
478
481
  <%= heading2 %>{State of the Art (SM1)}\label{sec:introduction:state-of-art}
479
482
  % ---------------------------------------------------------------------------------
480
483
 
481
- \emph{Purpose and scope}. You provide a more in-depth introduction into the research topic by contrasting the current state of the art in society/science in relation to the research topic you introduced in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:topic}. This introduction has to
484
+ \emph{Purpose and scope}. You provide a more in-depth introduction into the research topic by contrasting the current state of the art in society/science in relation to the research topic you introduced in \cref{sec:introduction:topic}. This introduction has to
482
485
 
483
486
  \begin{itemize}
484
487
  \item present established facts, methods, and results that provide a deeper understanding of the research topic (``prior work on giraffe genomes, relevance of giraffes for societal well-being, giraffes being a model-animal for various other studies, etc.'')
485
- \item discuss in which ways prior and recent ideas still fall short of reaching the general goal you explained in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:topic} (``prior work only sequenced the genome of one giraffe and did not consider genes of ancient ancestors'')
488
+ \item discuss in which ways prior and recent ideas still fall short of reaching the general goal you explained in \cref{sec:introduction:topic} (``prior work only sequenced the genome of one giraffe and did not consider genes of ancient ancestors'')
486
489
  \end{itemize}
487
490
 
488
- You have to provide citations/literature references for each of the statements and claims you are making. This section is usually a summary of the related work discussion in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Chapter~\ref<% } %>{sec:background}.
491
+ You have to provide citations/literature references for each of the statements and claims you are making. This section is usually a summary of the related work discussion in \cref{sec:background}.
489
492
 
490
- At the end of this section, you have established a \emph{knowledge gap} between the state of the art and the general objective you developed in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:topic}. \emph{Stating a (knowledge) gap between a status quo and a desired situation is the \emph{first step} of a writing scientific argument.}
493
+ At the end of this section, you have established a \emph{knowledge gap} between the state of the art and the general objective you developed in \cref{sec:introduction:topic}. \emph{Stating a (knowledge) gap between a status quo and a desired situation is the \emph{first step} of a writing scientific argument.}
491
494
 
492
495
 
493
496
  % ---------------------------------------------------------------------------------
494
497
  <%= heading2 %>{Research Question (SM2)}\label{sec:introduction:research-question}
495
498
  % ---------------------------------------------------------------------------------
496
499
 
497
- \emph{Purpose and scope}. In this section you state in which way you will address the knowledge gap you identified at the end of <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:state-of-art}. You usually cannot address and resolve the entire knowledge gap in your work. The purpose of this section is to clearly detail the specific part of the knowledge that you will address. You thereby make all the assumptions explicit that underlie your work (``in this report we focus on genomes of female giraffes who lived in the years 1950-2000 in South Africa'').
500
+ \emph{Purpose and scope}. In this section you state in which way you will address the knowledge gap you identified at the end of \cref{sec:introduction:state-of-art}. You usually cannot address and resolve the entire knowledge gap in your work. The purpose of this section is to clearly detail the specific part of the knowledge that you will address. You thereby make all the assumptions explicit that underlie your work (``in this report we focus on genomes of female giraffes who lived in the years 1950-2000 in South Africa'').
498
501
 
499
502
  Your general research question states
500
503
  \begin{itemize}
@@ -517,17 +520,17 @@ The section is most readable if you give each of the steps in your method its ow
517
520
  <%= heading2 %>{Findings (SM5, SM6)}\label{sec:introduction:results}
518
521
  % ---------------------------------------------------------------------------------
519
522
 
520
- \emph{Purpose and scope}. You close the introduction by clearly stating the evaluation setup you designed to evaluate the success of your study regarding the research objective, which comes in two steps. It is most likely a summary of your evaluation in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Chapter~\ref<% } %>{sec:evaluation}.
523
+ \emph{Purpose and scope}. You close the introduction by clearly stating the evaluation setup you designed to evaluate the success of your study regarding the research objective, which comes in two steps. It is most likely a summary of your evaluation in \cref{sec:evaluation}.
521
524
 
522
525
  \subsection*{Results (SM5)}
523
526
 
524
- You state the evaluation method that is in line with your research question from <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:research-question} and summarize the measurements you obtained but you do not interpret them, i.e., you only report the numbers but you do not include judging statements.
527
+ You state the evaluation method that is in line with your research question from \cref{sec:introduction:research-question} and summarize the measurements you obtained but you do not interpret them, i.e., you only report the numbers but you do not include judging statements.
525
528
 
526
529
  \subsection*{Interpretation (SM6)}
527
530
 
528
- You summarize your interpretation of the results and draw conclusions. State whether and to which degree the research question from <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:research-question} has been answered successfully or not.
531
+ You summarize your interpretation of the results and draw conclusions. State whether and to which degree the research question from \cref{sec:introduction:research-question} has been answered successfully or not.
529
532
 
530
- Finally state briefly how much closer society and science have come in answering the general objective you outlined in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:topic}.
533
+ Finally state briefly how much closer society and science have come in answering the general objective you outlined in \cref{sec:introduction:topic}.
531
534
 
532
535
  %%% ===============================================================================
533
536
  <%= heading1 %>{Background (SM1)}\label{sec:background}
@@ -538,7 +541,7 @@ Finally state briefly how much closer society and science have come in answering
538
541
 
539
542
  \item \emph{Preliminaries.} It has to provide all (and exactly the) information that is necessary to understand the methodological and technical parts of your work in the specific area of study. Assume as starting point another student in your degree who did not study the specific subject you are studying but has the task to understand your work. Which concepts, terms, definitions, etc. does the student have to know? Which formulas, symbols, etc. are standard in this topic? Only introduce definitions if you actually need them in any of the subsequent chapters.
540
543
 
541
- \item \emph{Related Work.} It has to provide a comprehensive discussion of all prior work in the area on this subject. Your discussion has to summarize these prior works and has to explain in which way the research question you are solving (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:research-question}) has not bee solved yet because prior work had more limiting assumptions, addressed a different angle, their results are not complete etc. Depending on the subject you are studying, the related work part can be larger and warrant an entire chapter on its own, or be fully concluded within <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:state-of-art}.
544
+ \item \emph{Related Work.} It has to provide a comprehensive discussion of all prior work in the area on this subject. Your discussion has to summarize these prior works and has to explain in which way the research question you are solving (\cref{sec:introduction:research-question}) has not bee solved yet because prior work had more limiting assumptions, addressed a different angle, their results are not complete etc. Depending on the subject you are studying, the related work part can be larger and warrant an entire chapter on its own, or be fully concluded within \cref{sec:introduction:state-of-art}.
542
545
 
543
546
  You can close the related work discussion by clarifying the positioning and formulation of your research question (SM2) in relation to all the prior work, making more explicit whether you address an existing research question under different premises or whether you work on a modified or completely new research question.
544
547
  \end{itemize}
@@ -547,9 +550,9 @@ Finally state briefly how much closer society and science have come in answering
547
550
  <%= heading1 %>{Problem Exposition (optional)}\label{sec:problem-exposition}
548
551
  %%% ===============================================================================
549
552
 
550
- \emph{Purpose and scope}. Introduce the problem context in more detail if <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:topic} does not provide all necessary information about the problem to follow the rest of the report. This can include further details on the data you studied, context assumptions and requirements, etc.
553
+ \emph{Purpose and scope}. Introduce the problem context in more detail if \cref{sec:introduction:topic} does not provide all necessary information about the problem to follow the rest of the report. This can include further details on the data you studied, context assumptions and requirements, etc.
551
554
 
552
- If you have to expose the problem in more detail here, then this chapter should also provide a more detailed explanation of research question and the method you are applying, i.e., you can now provide more concrete sub-problems compared to <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:research-question} more details for the method <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:method} because you now have explained the problem much better. A typical structure can be.
555
+ If you have to expose the problem in more detail here, then this chapter should also provide a more detailed explanation of research question and the method you are applying, i.e., you can now provide more concrete sub-problems compared to \cref{sec:introduction:research-question} more details for the method \cref{sec:introduction:method} because you now have explained the problem much better. A typical structure can be.
553
556
 
554
557
  % ---------------------------------------------------------------------------------
555
558
  <%= heading2 %>{Context/Business Understanding (SM1)}\label{sec:problem-exposition:context-understanding}
@@ -567,23 +570,23 @@ provide details
567
570
  <%= heading2 %>{Detailed Research Questions (SM2)}\label{sec:problem-exposition:research-problems}
568
571
  % ---------------------------------------------------------------------------------
569
572
 
570
- provide details based on <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem-exposition:context-understanding} and \ref{sec:problem-exposition:data-understanding}
573
+ provide details based on \cref{sec:problem-exposition:context-understanding} and \ref{sec:problem-exposition:data-understanding}
571
574
 
572
575
  % ---------------------------------------------------------------------------------
573
576
  <%= heading2 %>{Detailed Method (SM3)}\label{sec:problem-exposition:research-method}
574
577
  % ---------------------------------------------------------------------------------
575
578
 
576
- provide details based on <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem-exposition:context-understanding} and \ref{sec:problem-exposition:data-understanding}
579
+ provide details based on \cref{sec:problem-exposition:context-understanding} and \ref{sec:problem-exposition:data-understanding}
577
580
 
578
581
  %%% ===============================================================================
579
582
  <%= heading1 %>{First Real Chapter addressing first Research Problem}\label{sec:problem1}
580
583
  %%% ===============================================================================
581
584
 
582
- \emph{Purpose and scope}. After you stated research context (SM1), research problem (SM2), and research method (SM3) in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Chapter~\ref<% } %>{sec:introduction} and possibly <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Chapter~\ref<% } %>{sec:problem-exposition}, the remainder of your entire report addresses execution (SM4), results (SM5), and interpretation (SM6). You usually do this by addressing various sub-problems again through scientific arguments following the 6 steps SM1-SM6.
585
+ \emph{Purpose and scope}. After you stated research context (SM1), research problem (SM2), and research method (SM3) in \cref{sec:introduction} and possibly \cref{sec:problem-exposition}, the remainder of your entire report addresses execution (SM4), results (SM5), and interpretation (SM6). You usually do this by addressing various sub-problems again through scientific arguments following the 6 steps SM1-SM6.
583
586
 
584
- Have a short chapter introduction that recalls and explains the first research problem of your thesis. The problem has to show up in the introduction in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:research-question} or in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem-exposition:research-problems} already. This provides the background (SM1) for this chapter while the first research problem of the thesis becomes the research question/hypothesis (SM2) for this chapter.
587
+ Have a short chapter introduction that recalls and explains the first research problem of your thesis. The problem has to show up in the introduction in \cref{sec:introduction:research-question} or in \cref{sec:problem-exposition:research-problems} already. This provides the background (SM1) for this chapter while the first research problem of the thesis becomes the research question/hypothesis (SM2) for this chapter.
585
588
 
586
- Next, explain in the chapter intro how you solve the research problem in this chapter by breaking it down in further sub-problems. By this, you outline the method (SM3) through which you are going to solve the problem of this chapter. This is necessary to give the reader guidance of what's to come in this chapter and how it fits into the thesis as a whole. Explain that you will address the first sub-problem in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem1:subproblem1} and the second sub-problem in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem1:subproblem2}, etc. The sections then provide the details for execution and results.
589
+ Next, explain in the chapter intro how you solve the research problem in this chapter by breaking it down in further sub-problems. By this, you outline the method (SM3) through which you are going to solve the problem of this chapter. This is necessary to give the reader guidance of what's to come in this chapter and how it fits into the thesis as a whole. Explain that you will address the first sub-problem in \cref{sec:problem1:subproblem1} and the second sub-problem in \cref{sec:problem1:subproblem2}, etc. The sections then provide the details for execution and results.
587
590
 
588
591
  % ---------------------------------------------------------------------------------
589
592
  <%= heading2 %>{First Sub-Problem}\label{sec:problem1:subproblem1}
@@ -592,12 +595,12 @@ Next, explain in the chapter intro how you solve the research problem in this ch
592
595
  \emph{The first paragraph describes the first sub-problem and develops the requirements a solution has to satisfy (SM2 for this section).} The requirements have to be based on the knowledge and reasoning developing in the preceding chapters and sections. Try to use an example to illustrate the problem and the desired properties of the solution. Check that every term/concept you use here has already been defined already in a previous section. If you cannot describe your problem without defining new terms, you may have to add another section before this one that develops the terms and concepts you need to explain the problem.
593
596
 
594
597
  \emph{The second paragraph describes the method/approach how you address the problem (SM3 for this section).} Describe the method in a level of detail that allows another student to reproduce your steps.
595
- Make use of appendices % (see <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:appendix1})
598
+ Make use of appendices % (see \cref{sec:appendix1})
596
599
  if certain details take too much space.
597
600
 
598
601
  \emph{The third, fourth, and following paragraph provides details on applying the method or developing a new approach, i.e., execution (SM4) and may explain results (SM5)}, i.e. details on the steps needed to reproduce the results.
599
602
 
600
- Results (SM5) can come in many forms, e.g., conceptual diagrams, algorithms, tables, charts, a list of articles from a literature research etc. You must reference them (``<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Fig.~\ref<% } else { %>Figure~\ref<% } %>{fig:my_label} shows...'') and describe the results in text. If you use diagrams, tables, or charts, you cannot expect the reader to know what to you expect them to see in a diagram, table or chart. Describe to them how to read these, explain the meaning of particular elements, point out special observations. But you may only describe the results you must not interpret them. Make use of appendices if certain details take too much space.
603
+ Results (SM5) can come in many forms, e.g., conceptual diagrams, algorithms, tables, charts, a list of articles from a literature research etc. You must reference them (``\cref{fig:my_label} shows...'') and describe the results in text. If you use diagrams, tables, or charts, you cannot expect the reader to know what to you expect them to see in a diagram, table or chart. Describe to them how to read these, explain the meaning of particular elements, point out special observations. But you may only describe the results you must not interpret them. Make use of appendices if certain details take too much space.
601
604
 
602
605
  \begin{figure}
603
606
  \centering
@@ -608,13 +611,13 @@ Results (SM5) can come in many forms, e.g., conceptual diagrams, algorithms, tab
608
611
 
609
612
  \emph{After describing the results, you may interpret them (SM6).} Here you can infer what a particular observation means (for you), how it can be applied, or what others can do with it. You must not write interpretations before completely describing your results. This is a common mistake done by most beginner writers. You want to quickly get to the point, which is the final finding or interpretation. But you forget that your reader does not understand yet what you are interpreting - they do not know yet what you do know. An interpretation can only be followed after all results have been described. The interpretation must be based on the written description only. Then you can be sure that your readers can follow your interpretation and reach the same conclusions as you have.
610
613
 
611
- Ideally, your interpretation leads to the next sub-problem in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem1:subproblem2}.
614
+ Ideally, your interpretation leads to the next sub-problem in \cref{sec:problem1:subproblem2}.
612
615
 
613
616
  % ---------------------------------------------------------------------------------
614
617
  <%= heading2 %>{Second Sub-Problem}\label{sec:problem1:subproblem2}
615
618
  % ---------------------------------------------------------------------------------
616
619
 
617
- You now build on the solution to the first sub-problem of <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem1:subproblem1} (SM1) and recall second sub-problem (SM2, you detailed in the introduction of this chapter) and follow the same pattern as before (SM3-SM6).
620
+ You now build on the solution to the first sub-problem of \cref{sec:problem1:subproblem1} (SM1) and recall second sub-problem (SM2, you detailed in the introduction of this chapter) and follow the same pattern as before (SM3-SM6).
618
621
 
619
622
  Note that not all sections may not include all parts SM1-SM6 in all detail. Some sections do not require to repeatedly state the background (SM1) or the research problem (SM2) if they were already clearly defined in a previous section. Sometimes, a section is only dedicated to describing the method (SM3) and execution (SM4) and does not contain any results or interpretations. Sometimes results (SM5) and interpretations (SM6) only come in the evaluation chapter.
620
623
 
@@ -631,7 +634,7 @@ What is important for you when you are writing a scientific argument is not to s
631
634
  <%= heading1 %>{Second Real Chapter}\label{sec:sub-problem2}
632
635
  %%% ===============================================================================
633
636
 
634
- Have a short chapter introduction that recalls what you already achieved in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Chapter~\ref<% } %>{sec:problem1} and explain the second research problem of your thesis. The problem has to show up in the introduction in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:research-question} or in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:problem-exposition:research-problems} already. etc.
637
+ Have a short chapter introduction that recalls what you already achieved in \cref{sec:problem1} and explain the second research problem of your thesis. The problem has to show up in the introduction in \cref{sec:introduction:research-question} or in \cref{sec:problem-exposition:research-problems} already. etc.
635
638
 
636
639
  %%% ===============================================================================
637
640
  <%= heading1 %>{Evaluation}\label{sec:evaluation}
@@ -661,7 +664,7 @@ Provide all details on the execution that are necessary to allows another person
661
664
  <%= heading2 %>{Results (SM5)}\label{sec:evaluation:results}
662
665
  % ---------------------------------------------------------------------------------
663
666
 
664
- You only report the measurements. You must present and reference them (``<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Fig.~\ref<% } else { %>Figure~\ref<% } %>{fig:my_label2} shows...'') and describe the results in text. If you use diagrams, tables, or charts, you cannot expect the reader to know what to you expect them to see in a diagram, table or chart. Describe to them how to read these, explain the meaning of particular elements, point out special observations. But you may only describe the results you must not interpret them. Make use of appendices if certain details take too much space.
667
+ You only report the measurements. You must present and reference them (``\cref{fig:my_label2} shows...'') and describe the results in text. If you use diagrams, tables, or charts, you cannot expect the reader to know what to you expect them to see in a diagram, table or chart. Describe to them how to read these, explain the meaning of particular elements, point out special observations. But you may only describe the results you must not interpret them. Make use of appendices if certain details take too much space.
665
668
 
666
669
  \begin{figure}
667
670
  \centering
@@ -674,19 +677,19 @@ You only report the measurements. You must present and reference them (``<% if (
674
677
  <%= heading2 %>{Discussion (SM6)}\label{sec:evaluation:discussion}
675
678
  % ---------------------------------------------------------------------------------
676
679
 
677
- An interpretation can only be followed after all results have been described. The interpretation must be based on the written description in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:evaluation:results} only. Then you can be sure that your readers can follow your interpretation and reach the same conclusions as you have.
680
+ An interpretation can only be followed after all results have been described. The interpretation must be based on the written description in \cref{sec:evaluation:results} only. Then you can be sure that your readers can follow your interpretation and reach the same conclusions as you have.
678
681
 
679
682
  <% } else { -%>
680
683
  <%= heading1 %>{Introduction}
681
684
  \label{sec:introduction}
682
685
  \lipsum[1-3]\todo{Refine me}
683
686
 
684
- The remainder of the paper starts with a presentation of related work (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:relatedwork}).
685
- <% if (examples) { %>It is followed by a presentation of hints on \LaTeX{} (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:latexhints}).<% }
686
- -%>
687
- <% if (!examples && (documentclass == 'ieee')) { %>Afterwards, we present some Lorem Ipsum (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:loremipsum}).<% }
688
- -%>
689
- Finally, a conclusion is drawn and outlook on future work is made (<% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:outlook}).
687
+ The remainder of the paper starts with a presentation of related work (\cref{sec:relatedwork}).
688
+ <% if (examples) { %>It is followed by a presentation of hints on \LaTeX{} (\cref{sec:latexhints}).
689
+ <% } -%>
690
+ <% if (!examples && (documentclass == 'ieee')) { %>Afterwards, we present some Lorem Ipsum (\cref{sec:loremipsum}).
691
+ <% } -%>
692
+ Finally, a conclusion is drawn and outlook on future work is made (\cref{sec:outlook}).
690
693
 
691
694
  <%= heading1 %>{Related Work}
692
695
  \label{sec:relatedwork}
@@ -763,8 +766,7 @@ It focuses on minimal examples, which can be directly adapted to the content
763
766
  <% } -%>
764
767
  <% if (enquotes == 'plainlatex') { %><%- include('plainlatex.enquotes.example.en.tex', this); %>
765
768
  <% } -%>
766
- <% if (cleveref) { %><%- include('cleveref.example.en.tex', this); %>
767
- <% } -%>
769
+ <%- include('cleveref.example.en.tex', this); %>
768
770
  <%- include('figure.example.en.tex', this); %>
769
771
  <%- include('subfloat.example.en.tex', this); %>
770
772
  <%- include('tables.example.en.tex', this); %>
@@ -784,7 +786,7 @@ It focuses on minimal examples, which can be directly adapted to the content
784
786
  <%= heading1 %>{Conclusion}\label{sec:conclusion}
785
787
  %%% ===============================================================================
786
788
 
787
- Your conclusions are not just a factual summary of your work, but they position, interpret, and defend your findings against the state of the art that you discussed in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:state-of-art}. You specifically outline which concrete findings or methodological contributions advance our knowledge towards the general objective you introduced in <% if (cleveref) { %>\cref<% } else if (documentclass == 'lncs') { %>Sect.~\ref<% } else { %>Section~\ref<% } %>{sec:introduction:topic}. Objectively discuss which parts you solved and in which parts you failed.
789
+ Your conclusions are not just a factual summary of your work, but they position, interpret, and defend your findings against the state of the art that you discussed in \cref{sec:introduction:state-of-art}. You specifically outline which concrete findings or methodological contributions advance our knowledge towards the general objective you introduced in \cref{sec:introduction:topic}. Objectively discuss which parts you solved and in which parts you failed.
788
790
 
789
791
  You should explicitly discuss limitations and shortcomings of your work and detail what kind of future studies are needed to overcome these limitations. Be specific in the sense that your arguments for future work should be based on concrete findings and insights you obtained in your report.
790
792
  <% } else { -%>
@@ -835,7 +837,7 @@ See \url{https://help.jabref.org/en/CleanupEntries} for an overview of the clean
835
837
  <% switch (documentclass) { case "lncs": -%>
836
838
 
837
839
  \renewcommand{\bibsection}{\section*{References}} % requried for natbib to have "References" printed and as section*, not chapter*
838
- % Use natbib compatbile splncsnat style.
840
+ % Use natbib compatbile splncs04nat style.
839
841
  % It does provide all features of splncs04.bst, but is developed in a clean way.
840
842
  % Source: https://github.com/tpavlic/splncs04nat
841
843
  \bibliographystyle{splncs04nat}
@@ -1,10 +1,10 @@
1
1
  <%= heading2 %>{Source Code}
2
2
 
3
- \href{https://github.com/gpoore/minted}{minted} is a sophisticated packes to enable properly highlighted listings.
3
+ \href{https://github.com/gpoore/minted}{minted} is a sophisticated package to enable properly highlighted listings.
4
4
  It uses the \href{http://pygments.org/}{pygments} library, which in turn requires Python.
5
5
 
6
6
  <%- bexample %>
7
- <% if (cleveref) { %>\Cref<% } else { %>Listing~\ref<% } %>{lst:XML} shows source code written in XML.
7
+ \Cref{lst:XML} shows source code written in XML.
8
8
  \refline{line:comment} contains a comment.
9
9
 
10
10
  \begin{listing}[htbp]
@@ -19,7 +19,7 @@ It uses the \href{http://pygments.org/}{pygments} library, which in turn require
19
19
  \end{listing}
20
20
  <%- eexample %>
21
21
 
22
- One can also typeset JSON as shown in <% if (cleveref) { %>\cref<% } else { %>Listing~<% } %>{lst:flJSON}.
22
+ One can also typeset JSON as shown in \cref{lst:flJSON}.
23
23
 
24
24
  <%- bexample %>
25
25
  \begin{listing}[htbp]
@@ -33,7 +33,7 @@ One can also typeset JSON as shown in <% if (cleveref) { %>\cref<% } else { %>Li
33
33
  \end{listing}
34
34
  <%- eexample %>
35
35
 
36
- Java is also possible as shown in <% if (cleveref) { %>\cref<% } else { %>Listing~<% } %>{lst:flJava}.
36
+ Java is also possible as shown in \cref{lst:flJava}.
37
37
 
38
38
  <%- bexample %>
39
39
  \begin{listing}[htbp]
@@ -45,6 +45,6 @@ public class Hello {
45
45
  }
46
46
  \end{minted}
47
47
  \caption{Java code rendered using minted}
48
- \label{lst:java}
48
+ \label{lst:flJava}
49
49
  \end{listing}
50
50
  <%- eexample %>
@@ -1,7 +1,18 @@
1
1
  \usepackage[newfloat]{minted}
2
2
 
3
- % Line numbers not flowing out of the margin
4
- \setminted{numbersep=5pt, xleftmargin=12pt}
3
+ \setminted{
4
+ % Line numbers not flowing out of the margin
5
+ numbersep=5pt,
6
+ xleftmargin=12pt,
7
+ %
8
+ % Better listing breaking
9
+ breakafter=-/\{,
10
+ breakbefore=\\
11
+ %
12
+ % Alternative: Rely on pygment's tokenizer. Does not work well with LaTeX and comments
13
+ % breakbytoken=true,
14
+ % breakbytokenanywhere=true
15
+ }
5
16
 
6
17
  \usemintedstyle{bw} %black and white style
7
18
  %\usemintedstyle{vs} %visual studio
@@ -0,0 +1,36 @@
1
+ <%= heading2 %>{Checking references}
2
+
3
+ The package refcheck provides a) putting used labels into the margin and b) outputting in the log file if labels are unused.
4
+ The features are disabled in the template, because users might not be used to it.
5
+ From this section on, the feature is enabled.
6
+
7
+ % Enable showing reference names
8
+ \showrefnames
9
+
10
+ <%- bexample %>
11
+ \begin{figure}
12
+ Minimal figure to demonstrate refcheck.
13
+ \caption{Minimal figure to demonstrate refcheck.}
14
+ \label{refcheckexamplefigure}
15
+ \end{figure}
16
+
17
+ See \ref{refcheckexamplefigure}.
18
+ <%- eexample %>
19
+
20
+
21
+ % Enable equation check feature
22
+ \checkunlbld
23
+
24
+ <%- bexample %>
25
+ \begin{eqnarray}
26
+ a & = & b\label{eq1}\\
27
+ b & = & c\label{eq2}\\
28
+ c & = & d\label{eq3}
29
+ \end{eqnarray}
30
+
31
+ See \ref{eq1}.
32
+ <%- eexample %>
33
+
34
+ % This shows the BibTeX keys in the margin
35
+ % Cannot be demonstrated properly, thus not enabled
36
+ % \showcitenames
@@ -0,0 +1,4 @@
1
+ % Provides information on labels
2
+ % Configured non-unintruisively to avoid WTFs of users
3
+ % CTAN: https://ctan.org/pkg/refcheck
4
+ \usepackage[norefs,nocites,msgs,ignoreunlbld]{refcheck}
@@ -1,6 +1,6 @@
1
1
  <%= heading2 %>{Sub Figures}
2
2
 
3
- An example of two sub figures is shown in <% if (cleveref) { %>\cref<% } else { %>Fig.~\ref<% } %>{fig:two_sub_figures}.
3
+ An example of two sub figures is shown in \cref{fig:two_sub_figures}.
4
4
 
5
5
  <%- bexample %>
6
6
  \begin{figure<% if (documentclass == 'ieee') { %>*<% } %>}[!b]
@@ -23,7 +23,7 @@ Be aware that for subfig.sty to generate the (a), (b), etc., subfigure
23
23
  labels, the optional argument to \verb+\subfloat+ must be present. If a
24
24
  subcaption is not desired, just leave its contents blank,
25
25
  e.g., \verb+\subfloat[]+.
26
- An example is shown in <% if (cleveref) { %>\cref<% } else { %>Fig.~\ref<% } %>{fig:two_sub_figures_ieee}.
26
+ An example is shown in \cref{fig:two_sub_figures_ieee}.
27
27
 
28
28
  <%- bexample %>
29
29
  \begin{figure*}[!b]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "generator-latex-template",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Generates a latex template to be used as start for writing scientific works (papers, articles, theses)",
5
5
  "homepage": "https://github.com/latextemplates/generator-latex-template",
6
6
  "author": {
@@ -20,16 +20,16 @@
20
20
  "yeoman-generator"
21
21
  ],
22
22
  "devDependencies": {
23
- "eslint": "^8.7.0",
24
- "eslint-config-prettier": "^8.3.0",
25
- "eslint-config-xo": "^0.39.0",
23
+ "eslint": "^8.17.0",
24
+ "eslint-config-prettier": "^8.5.0",
25
+ "eslint-config-xo": "^0.41.0",
26
26
  "eslint-plugin-prettier": "^4.0.0",
27
- "husky": "^7.0.4",
28
- "jest": "^27.4.7",
29
- "lint-staged": "^12.3.1",
30
- "prettier": "^2.5.1",
27
+ "husky": "^8.0.1",
28
+ "jest": "^28.1.0",
29
+ "lint-staged": "^13.0.0",
30
+ "prettier": "^2.6.2",
31
31
  "yeoman-assert": "^3.1.1",
32
- "yeoman-test": "^6.2.0"
32
+ "yeoman-test": "^6.3.0"
33
33
  },
34
34
  "engines": {
35
35
  "npm": ">= 4.0.0"
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "basic-ftp": "^4.6.6",
39
39
  "chalk": "~4.1.2",
40
- "minimist": "^1.2.5",
40
+ "minimist": "^1.2.6",
41
41
  "unzipper": "^0.10.11",
42
42
  "yeoman-generator": "^5.6.1",
43
43
  "yeoman-option-or-prompt": "^2.0.1",
@@ -77,5 +77,5 @@
77
77
  "test": "jest"
78
78
  },
79
79
  "repository": "https://github.com/latextemplates/generator-latex-template.git",
80
- "license": "GPL-3.0"
80
+ "license": "0BSD"
81
81
  }