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 +6 -10
- package/generators/app/index.js +1 -10
- package/generators/app/templates/.github/workflows/check.yml +3 -3
- package/generators/app/templates/README.en.md +4 -11
- package/generators/app/templates/figure.example.de.tex +0 -4
- package/generators/app/templates/figure.example.en.tex +2 -6
- package/generators/app/templates/listings.example.de.tex +0 -17
- package/generators/app/templates/listings.example.en.tex +6 -6
- package/generators/app/templates/main.de.tex +11 -8
- package/generators/app/templates/main.en.tex +47 -45
- package/generators/app/templates/minted.example.en.tex +5 -5
- package/generators/app/templates/minted.preamble.en.tex +13 -2
- package/generators/app/templates/refcheck.example.en.tex +36 -0
- package/generators/app/templates/refcheck.preamble.en.tex +4 -0
- package/generators/app/templates/subfloat.example.en.tex +2 -2
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LaTeX Template Generator [](https://npmjs.org/package/generator-latex-template "View this project on npm")
|
|
2
2
|
|
|
3
|
-
> Generates
|
|
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
|
|
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 --
|
|
112
|
-
- Windows: `npx yo c:\git-repositories\latextemplates\generator-latex-template --documentclass=scientific-thesis --
|
|
113
|
-
- Windows automatic generation of a LNCS template (with pdflatex and bibtex): `npx yo c:\git-repositories\latextemplates\generator-latex-template --documentclass=lncs
|
|
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
|
|
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.
|
package/generators/app/index.js
CHANGED
|
@@ -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: "
|
|
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@
|
|
17
|
+
uses: docker/setup-qemu-action@v2
|
|
18
18
|
- name: Set up Docker Buildx
|
|
19
|
-
uses: docker/setup-buildx-action@
|
|
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@
|
|
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
|
-
|
|
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]
|
|
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 (
|
|
146
|
-
- Modern packages such as <% if (
|
|
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 %>{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
|
|
21
|
-
See
|
|
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
|
-
|
|
5
|
-
|
|
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
|
|
19
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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 (
|
|
238
|
-
<% if (examples) { %>It is followed by a presentation of hints on \LaTeX{} (
|
|
239
|
-
|
|
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
|
-
|
|
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
|
|
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{
|
|
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,
|
|
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,<% }
|
|
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
|
-
|
|
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
|
-
%
|
|
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 "
|
|
230
|
-
%example: llncs{Anonymous et al. (eds). \emph{Proceedings of the International Conference on \LaTeX-Hacks}, LNCS~42. Some Publisher, 2016.}{0042}
|
|
231
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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 (
|
|
685
|
-
<% if (examples) { %>It is followed by a presentation of hints on \LaTeX{} (
|
|
686
|
-
-%>
|
|
687
|
-
<% if (!examples && (documentclass == 'ieee')) { %>Afterwards, we present some Lorem Ipsum (
|
|
688
|
-
-%>
|
|
689
|
-
Finally, a conclusion is drawn and outlook on future work is made (
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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:
|
|
48
|
+
\label{lst:flJava}
|
|
49
49
|
\end{listing}
|
|
50
50
|
<%- eexample %>
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
\usepackage[newfloat]{minted}
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<%= heading2 %>{Sub Figures}
|
|
2
2
|
|
|
3
|
-
An example of two sub figures is shown in
|
|
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
|
|
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.
|
|
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.
|
|
24
|
-
"eslint-config-prettier": "^8.
|
|
25
|
-
"eslint-config-xo": "^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": "^
|
|
28
|
-
"jest": "^
|
|
29
|
-
"lint-staged": "^
|
|
30
|
-
"prettier": "^2.
|
|
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.
|
|
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.
|
|
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": "
|
|
80
|
+
"license": "0BSD"
|
|
81
81
|
}
|