generator-latex-template 0.3.0 → 0.6.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.
Files changed (38) hide show
  1. package/README.md +16 -3
  2. package/generators/app/index.js +210 -98
  3. package/generators/app/templates/.github/workflows/check.yml +43 -0
  4. package/generators/app/templates/Dockerfile.dante +9 -0
  5. package/generators/app/templates/Dockerfile.reitzig +37 -0
  6. package/generators/app/templates/Makefile +0 -13
  7. package/generators/app/templates/README.en.md +61 -26
  8. package/generators/app/templates/Texlivefile +128 -0
  9. package/generators/app/templates/acronyms.de.tex +6 -0
  10. package/generators/app/templates/acronyms.en.tex +5 -0
  11. package/generators/app/templates/acronyms.example.de.tex +24 -0
  12. package/generators/app/templates/acronyms.example.en.tex +24 -0
  13. package/generators/app/templates/acronyms.preamble.en.tex +15 -0
  14. package/generators/app/templates/biblatex.preamble.de.tex +9 -0
  15. package/generators/app/templates/biblatex.preamble.en.tex +61 -0
  16. package/generators/app/templates/bibliography.bib +11 -0
  17. package/generators/app/templates/cleveref.example.en.tex +1 -1
  18. package/generators/app/templates/dot.dockerignore +429 -0
  19. package/generators/app/templates/figure.example.en.tex +1 -1
  20. package/generators/app/templates/font.preamble.en.tex +1 -4
  21. package/generators/app/templates/{dot.latexmkrc → latexmkrc} +11 -9
  22. package/generators/app/templates/main.de.tex +133 -11
  23. package/generators/app/templates/main.en.tex +153 -46
  24. package/generators/app/templates/scientific-thesis-cover.preamble.de.tex +12 -0
  25. package/generators/app/templates/scientific-thesis-cover.preamble.en.tex +12 -0
  26. package/generators/app/templates/siunitx.preamble.en.tex +0 -5
  27. package/generators/app/templates/{splncsnat.bst → splncs04nat.bst} +156 -118
  28. package/package.json +9 -9
  29. package/CHANGELOG.md +0 -76
  30. package/generators/app/templates/bibliography.bib.bak +0 -37
  31. package/generators/app/templates/main.de.pdf +0 -0
  32. package/generators/app/templates/main.de.synctex.gz +0 -0
  33. package/generators/app/templates/main.en.aux +0 -3
  34. package/generators/app/templates/main.en.fdb_latexmk +0 -38
  35. package/generators/app/templates/main.en.fls +0 -52
  36. package/generators/app/templates/main.en.log +0 -251
  37. package/generators/app/templates/main.en.pdf +0 -0
  38. package/generators/app/templates/main.en.synctex.gz +0 -0
@@ -4,11 +4,21 @@
4
4
  # Simplified LNCS Template
5
5
 
6
6
  > Quick start for modern LaTeXing with [LNCS](http://www.springer.com/computer/lncs).
7
+ <% if (texlive == 2020) { -%>
8
+
9
+ Please be aware that this template is optimized for overleaf, which [is based on TeXLive 2021](https://de.overleaf.com/blog/tex-live-2021-now-available).
10
+ In case you are running a later TeXLive version (or use MiKTeX), please regenerate the template with the help of the [latex template generator].
11
+ <% } -%>
7
12
  <% break; case "ieee": -%>
8
13
  # Simplified IEEE Template
9
14
 
10
15
  > Quick start for modern LaTeXing for an IEEE conference, based on the [Manuscript Template for Conference Proceedings](https://www.ieee.org/conferences_events/conferences/publishing/templates.html).
11
16
 
17
+ <% if (texlive == 2020) { -%>
18
+ Please be aware that this template is optimized for overleaf, which [is based on TeXLive 2021](https://de.overleaf.com/blog/tex-live-2021-now-available).
19
+ In case you are running a later TeXLive version (or use MiKTeX), please regenerate the template with the help of the [latex template generator].
20
+ <% } -%>
21
+
12
22
  The official template is distributed via CTAN as the [IEEEtran package](https://ctan.org/pkg/ieeetran), which is actively maintained.
13
23
  However, de-facto configurations (hyperref) and modern features of latex (microtype) are not configured.
14
24
  This template does it.
@@ -16,6 +26,26 @@ This template does it.
16
26
  This template is for the conferences.
17
27
  It is based on the `bare_conf_compsoc.tex` distributed by IEEE.
18
28
  In case you need other configurations, please adapt `paper-conference.tex` or run the [latex template generator].
29
+ <% break; case "scientific-thesis": -%>
30
+ # LaTeX Template for a Scientific Thesis
31
+
32
+ This template is a general template for scientific theses.
33
+ Currently, it is the unofficial LaTeX template for Master, Bachelor, Diploma, and Student Theses at following institutions:
34
+
35
+ - University of Stuttgart, Computer Science
36
+ - [English example](https://latextemplates.github.io/scientific-thesis-template/main-english.pdf)
37
+ - [German example](https://latextemplates.github.io/scientific-thesis-template/main-german.pdf)
38
+ - [German example with minted and PlantUML](https://latextemplates.github.io/scientific-thesis-template/main-minted-german.pdf)
39
+ <!--
40
+ - Paderborn University, Computer Science - to be confirmed.
41
+ - [English example](https://latextemplates.github.io/scientific-thesis-template/main-paderborn-english.pdf)
42
+ - [German example](https://latextemplates.github.io/scientific-thesis-template/main-paderborn-german.pdf)
43
+ -->
44
+
45
+ The template will be extended to support theses from different institutions.
46
+
47
+ For [architectural decision records](https://adr.github.io) see [docs/adr](https://latextemplates.github.io/scientific-thesis-template/adr/).
48
+
19
49
  <% break; default: -%>
20
50
  # LaTeX Document
21
51
  <% break; }
@@ -30,15 +60,12 @@ Note that this requires a working perl installation.
30
60
 
31
61
  In case something goes wrong, you can instruct the LaTeX compiler to stop at the first error:
32
62
 
33
- <% if (latexcompiler == "pdflatex") { %>
63
+ <% if (latexcompiler == "pdflatex") { -%>
34
64
  pdflatex <%= filenames.main %>
35
- <%
36
- } else {
37
- %>
65
+ <% } else { -%>
38
66
  lualatex <%= filenames.main %>
39
- <%
40
- }
41
- %>
67
+ <% } -%>
68
+
42
69
  ## Benefits
43
70
 
44
71
  Following features are enabled in this template:
@@ -141,31 +168,24 @@ Congratulations. You chose to use all available features.
141
168
  The official template is available at <https://www.springer.com/gp/computer-science/lncs/conference-proceedings-guidelines> --> "Templates, samples files & useful links" --> "LaTeX2e Proceedings Templates (zip)"
142
169
  Deep link: <ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip>.
143
170
 
144
- > **The class file authored by Springer is needed to get the template working:**
145
- > `llncs.cls`
146
- > You get it from inside the ZIP of `llncs2e.zip` available at <ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip>.
147
-
148
- Reason: Licensing restrictions of Springer do not allow distribution outside of springer.
149
- See [message #47 for debian bug 31897](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=31897#47) for details.
150
- Therefore, the required file `llncs.cls` has to be downloaded in some way.
151
- Follow the quick start instructions.
152
-
153
171
  ## Quick start
154
172
 
155
173
  - Click on `Download ZIP` or [here](https://github.com/latextemplates/LNCS/archive/main.zip).
156
174
  - Extract `LNCS-main.zip` in the folder where you want to write your paper.
157
- - Place `llncs.cls` into the directory
158
- - Download `llncs2e.zip` from <ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip> and extract it in the directory.
159
- On Linux, just execute `download-llncs-files-from-springer.sh`.
160
- - In case ftp does not work at your side, you can try online ftp services such as http://www.net2ftp.com/ to download the files.
161
- Open the connection to `ftp.springernature.com` and navigate to `cs-proceeding`, `llncs`, and download the ZIP archive.
162
175
  - Edit [paper.tex](paper.tex).
163
176
  - `latexmk paper`.
164
177
 
165
- As you see on GitHub actions, the paper compiles out of the box.
166
- There is no need to adjust the packages or to remove some of them.
167
- This might lead to undesiered results such as hyperlinks not working any more or no good microtypographic features.
168
- In case you think, a package needs to be altered or added, feel free to open an issue.
178
+ When using on overleaf, you have to add the file `llncs.cls` manually:
179
+
180
+ 1. Navigate to "Add Files"
181
+ 2. Select "From External URL"
182
+ 3. Paste <https://latextemplates.github.io/stys-for-overleaf/llncs.cls> into the field "URL to fetch the file from"
183
+ 4. Click "Create"
184
+
185
+ As you see on GitHub actions, the paper compiles out of the box.
186
+ There is no need to adjust the packages or to remove some of them.
187
+ This might lead to undesiered results such as hyperlinks not working any more or no good microtypographic features.
188
+ In case you think, a package needs to be altered or added, feel free to open an issue.
169
189
  <% break; case "ieee": -%>
170
190
 
171
191
  ## Examples
@@ -230,7 +250,7 @@ Statement from IEEE:
230
250
 
231
251
  <% switch (documentclass) { case "lncs": -%>
232
252
  There is currently no official biblatex support.
233
- A first step towards that is done at [biblatex-lncs](https://github.com/mgttlinger/biblatex-lncs).
253
+ A first step towards that is done at [biblatex-lncs](https://ctan.org/pkg/biblatex-lncs).
234
254
  <% break; case "ieee": -%>
235
255
  There is currently no official biblatex support.
236
256
  A first step towards that is done at the [biblatex-ieee package](https://ctan.org/pkg/biblatex-ieee).
@@ -253,7 +273,22 @@ To have minted running properly, you have to do following steps on Windows:
253
273
  3. When latexing, use `-shell-escape`: `pdflatex -shell-escape paper`.
254
274
  You can also just execute `latexmk paper`.
255
275
  <% } -%>
276
+ <% switch (docker) {
277
+ case "reitzig": -%>
278
+
279
+ ## Usage with docker
280
+
281
+ The generated `Dockerfile` is based on the [Dockerfile by reitzig](https://github.com/reitzig/texlive-docker).
282
+ The idea of that system is to host the document sources in a directory separated from the output directory.
256
283
 
284
+ docker run --rm -v "c:\users\example\latex-document:/work/src" -v "c:\users\example\latex-document\out:/work/out" ltg work latexmk
285
+
286
+ Following one-time setup is requried:
287
+
288
+ docker build -t ltg .
289
+
290
+ <% break; default: -%>
291
+ <% break; } -%>
257
292
  ## FAQs
258
293
  <% switch (documentclass) { case "lncs": -%>
259
294
 
@@ -0,0 +1,128 @@
1
+ amsmath
2
+ acmart
3
+ atbegshi
4
+ atveryend
5
+ auxhook
6
+ babel
7
+ babel-english
8
+ <%# german needed for some TeX source code input hacks -%>
9
+ babel-german
10
+ <% if (bibtextool == "biblatex") { -%>
11
+ biblatex
12
+ biber
13
+ <% } -%>
14
+ bigintcalc
15
+ bitset
16
+ blindtext
17
+ booktabs
18
+ caption
19
+ catchfile
20
+ cfr-lm
21
+ cleveref
22
+ comment
23
+ csquotes
24
+ currfile
25
+ datetime2
26
+ <% if (githubpublish || (language == "de")) { -%>
27
+ datetime2-german
28
+ <% } -%>
29
+ datetime2-english
30
+ <% if (documentclass == "scientific-thesis") { -%>
31
+ datatool
32
+ <% } -%>
33
+ <% if (githubpublish || (language == "de")) { -%>
34
+ dehyph-exptl
35
+ <% } -%>
36
+ diagbox
37
+ environ
38
+ etexcmds
39
+ etoolbox
40
+ floatflt
41
+ framed
42
+ fvextra
43
+ gettitlestring
44
+ glossaries
45
+ glossaries-extra
46
+ graphics
47
+ hyperref
48
+ hyperxmp
49
+ hyph-utf8
50
+ hyphen-english
51
+ <% if (githubpublish || (language == "de")) { -%>
52
+ hyphen-german
53
+ <% } -%>
54
+ hyphenex
55
+ inconsolata
56
+ ieeetran
57
+ ifmtarg
58
+ infwarerr
59
+ intcalc
60
+ <% if (documentclass == "scientific-thesis") { -%>
61
+ koma-script
62
+ <% } -%>
63
+ kvdefinekeys
64
+ kvoptions
65
+ kvsetkeys
66
+ latexmk
67
+ letltxmacro
68
+ libertine
69
+ lineno
70
+ linenoamsmath
71
+ lipsum
72
+ listings
73
+ llncs
74
+ ltxcmds
75
+ marginnote
76
+ <% if (documentclass == "scientific-thesis") { -%>
77
+ mfirstuc
78
+ <% } -%>
79
+ microtype
80
+ mindflow
81
+ minted
82
+ mnsymbol
83
+ mwe
84
+ natbib
85
+ ncctools
86
+ newcomputermodern
87
+ newtx
88
+ newtxtt
89
+ nfssext-cfr
90
+ nowidow
91
+ oberdiek
92
+ paralist
93
+ pbalance
94
+ pdfcomment
95
+ pdfescape
96
+ pdftexcmds
97
+ pict2e
98
+ preprint
99
+ refcount
100
+ regexpatch
101
+ rerunfilecheck
102
+ <% if (documentclass == "scientific-thesis") { -%>
103
+ scientific-thesis-cover
104
+ <% } -%>
105
+ siunitx
106
+ snapshot
107
+ soul
108
+ soulpos
109
+ soulutf8
110
+ sttools
111
+ stringenc
112
+ subfig
113
+ svn-prov
114
+ tcolorbox
115
+ texlogsieve
116
+ totpages
117
+ tracklang
118
+ translator
119
+ uniquecounter
120
+ upquote
121
+ url
122
+ xcolor
123
+ <% if (documentclass == "scientific-thesis") { -%>
124
+ xfor
125
+ <% } -%>
126
+ xkeyval
127
+ xstring
128
+ zref
@@ -0,0 +1,6 @@
1
+ % Hier stehen alle Abkürzungen
2
+ \newabbreviation{er}{ER}{error rate}
3
+ \newabbreviation{fr}{FR}{Fehlerrate}
4
+ \newabbreviation[shortplural={RDBMS},longplural={RDBMS}]{rdbms}{RDBMS}{Relational Database Management System}
5
+ \newabbreviation[category=abbreviationdot]{dante}{DANTE e.V.}{Deutschsprachige Anwendervereinigung \TeX\ e.V.}
6
+ \newabbreviation{gp}{G.P.}{General Practitioner}
@@ -0,0 +1,5 @@
1
+ \newabbreviation{er}{ER}{error rate}
2
+ \newabbreviation{fr}{FR}{Fehlerrate}
3
+ \newabbreviation[shortplural={RDBMS},longplural={RDBMS}]{rdbms}{RDBMS}{Relational Database Management System}
4
+ \newabbreviation[category=abbreviationdot]{dante}{DANTE e.V.}{Deutschsprachige Anwendervereinigung \TeX\ e.V.}
5
+ \newabbreviation{gp}{G.P.}{General Practitioner}
@@ -0,0 +1,24 @@
1
+ <%= heading2 %>{Abkürzungen}
2
+
3
+ Mit \verb+\gls{...}+ können Abkürzungen eingebaut werden, beim ersten Aufrufen wird die lange Form eingesetzt.
4
+ Beim wiederholten Verwenden von \verb+\gls{...}+ wird automatisch die Kurzform angezeigt.
5
+ Außerdem wird die Abkürzung automatisch in die Abkürzungsliste eingefügt.
6
+ Mit \verb+\glspl{...}+ wird die Pluralform verwendet.
7
+ Möchte man, dass bei der ersten Verwendung direkt die Kurzform erscheint, so kann man mit \verb+\glsunset{...}+ eine Abkürzung als bereits verwendet markieren.
8
+ Das Gegenteil erreicht man mit \verb+\glsreset{...}+.
9
+
10
+ Definiert werden Abkürzungen in der Datei \textit{acronyms.tex} mithilfe von \verb+\newacronym{...}{...}{...}+.
11
+
12
+ Mehr Infos unter: \url{https://ctan.org/pkg/bib2gls}.
13
+
14
+ <%- bexample %>
15
+ Beim ersten Durchlauf betrug die \gls{fr} 5.
16
+ Beim zweiten Durchlauf war die \gls{fr} 3.
17
+ Die Pluralform sieht man hier: \glspl{er}.
18
+ Um zu demonstrieren, wie das Abkürzungsverzeichnis bei längeren Beschreibungstexten aussieht, muss hier noch \glspl{rdbms} erwähnt werden.
19
+
20
+ \gls{dante} is a local \TeX\ user group.
21
+ The German-speaking local \TeX\ user group is \gls{dante}.
22
+ A \gls{gp} is a medical doctor.
23
+ I went to my surgery to see the \gls{gp}.
24
+ <%- eexample %>
@@ -0,0 +1,24 @@
1
+ <%= heading2 %>{Abbreviations}
2
+
3
+ With \verb+\gls{...}+ you can enter abbreviations, the first time you call it, the long form is used.
4
+ When reusing \verb+\gls{..}+ the short form is automatically displayed.
5
+ The abbreviation is also automatically inserted in the abbreviation list.
6
+ With \verb+\glspl{...}+ the plural form is used.
7
+ If you want the short form to appear directly at the first use, you can use \verb+\glsunset{..}+ to mark an abbreviation as already used.
8
+ The opposite is achieved with \verb+\glsreset{..}+.
9
+
10
+ Abbreviations are defined in \verb+\content\ausarbeitung.tex+ by means of \verb+\newacronym{...}{...}{...}+.
11
+
12
+ More information at: \url{https://ctan.org/pkg/bib2gls}.
13
+
14
+ <%- bexample %>
15
+ At the first pass the \gls{fr} was 5.
16
+ At the second pass was \gls{fr} 3.
17
+ The plural form can be seen here: \glspl{er}.
18
+ To demonstrate what the list of abbreviations looks like for longer description texts, \glspl{rdbms} must be mentioned here.
19
+
20
+ \gls{dante} is a local \TeX\ user group.
21
+ The German-speaking local \TeX\ user group is \gls{dante}.
22
+ A \gls{gp} is a medical doctor.
23
+ I went to my surgery to see the \gls{gp}.
24
+ <%- eexample %>
@@ -0,0 +1,15 @@
1
+ \usepackage[
2
+ abbreviations, % create "abbreviations" glossary
3
+ nomain, % don't create "main" glossary
4
+ stylemods=longbooktabs % do the adjustments for the longbooktabs styles
5
+ ]{glossaries-extra}
6
+ \setglossarystyle{long3col-booktabs}
7
+
8
+ % Hint by https://tex.stackexchange.com/a/463188/9075
9
+ % \usepackage{glossary-longextra}
10
+
11
+ % Following is required if the abbreviation list should be sorted automatically (\printglossary)
12
+ % Not required, if we printed the entries in-order (using \printunsrtglossaries)
13
+ \makeglossaries
14
+
15
+ \input{acronyms}
@@ -0,0 +1,9 @@
1
+ <%- include('biblatex.preamble.en.tex', this); -%>
2
+
3
+ \DefineBibliographyStrings{ngerman}{
4
+ backrefpage = {zitiert auf S\adddot},
5
+ backrefpages = {zitiert auf S\adddot},
6
+ andothers = {et\ \addabbrvspace al\adddot},
7
+ %Tipp von http://www.mrunix.de/forums/showthread.php?64665-biblatex-Kann-%DCberschrift-vom-Inhaltsverzeichnis-nicht-%E4ndern&p=293656&viewfull=1#post293656
8
+ bibliography = {Literaturverzeichnis}
9
+ }
@@ -0,0 +1,61 @@
1
+ \usepackage[
2
+ backend = biber, %biber does not work with 64x versions alternative: bibtex8
3
+ %minalphanames only works with biber backend
4
+ sortcites = true,
5
+ bibstyle = alphabetic,
6
+ citestyle = alphabetic,
7
+ giveninits = true,
8
+ useprefix = false, %"von, van, etc." will be printed, too. See below.
9
+ minnames = 1,
10
+ minalphanames = 3,
11
+ maxalphanames = 4,
12
+ maxbibnames = 99,
13
+ maxcitenames = 2,
14
+ natbib = true,
15
+ eprint = true,
16
+ url = true,
17
+ doi = true,
18
+ isbn = true,
19
+ backref = true]{biblatex}
20
+
21
+ % enable more breaks at URLs. See https://tex.stackexchange.com/a/134281.
22
+ \setcounter{biburllcpenalty}{7000}
23
+ \setcounter{biburlucpenalty}{8000}
24
+
25
+ \bibliography{<%= filenames.bib %>}
26
+ %\addbibresource[datatype=bibtex]{\bibliography{<%= filenames.bib %>}}
27
+
28
+ % Do not put "vd" in the label, but put it at "\citeauthor"
29
+ % Source: http://tex.stackexchange.com/a/30277/9075
30
+ \makeatletter
31
+ \AtBeginDocument{\toggletrue{blx@useprefix}}
32
+ \AtBeginBibliography{\togglefalse{blx@useprefix}}
33
+ \makeatother
34
+
35
+ % Thin spaces between initials
36
+ % http://tex.stackexchange.com/a/11083/9075
37
+ \renewrobustcmd*{\bibinitdelim}{\,}
38
+
39
+ % Keep first and last name together in the bibliography
40
+ % http://tex.stackexchange.com/a/196192/9075
41
+ \renewcommand*\bibnamedelimc{\addnbspace}
42
+ \renewcommand*\bibnamedelimd{\addnbspace}
43
+
44
+ % Replace last "and" by comma in bibliography
45
+ % See http://tex.stackexchange.com/a/41532/9075
46
+ \AtBeginBibliography{%
47
+ \renewcommand*{\finalnamedelim}{\addcomma\space}%
48
+ }
49
+
50
+ % enable hyperlinked author names when using \citeauthor
51
+ % source: http://tex.stackexchange.com/a/75916/9075
52
+ \DeclareCiteCommand{\citeauthor}
53
+ {\boolfalse{citetracker}%
54
+ \boolfalse{pagetracker}%
55
+ \usebibmacro{prenote}}
56
+ {\ifciteindex
57
+ {\indexnames{labelname}}
58
+ {}%
59
+ \printtext[bibhyperref]{\printnames{labelname}}}
60
+ {\multicitedelim}
61
+ {\usebibmacro{postnote}}
@@ -33,5 +33,16 @@
33
33
  year = {2017},
34
34
  url = {http://texdoc.net/mwe},
35
35
  }
36
+ <% if ((documentclass == 'acmart') || (documentclass == 'lncs') || (documentclass == 'ieee')) { -%>
37
+
38
+ @Misc{acmart,
39
+ author = {Boris Veytsman},
40
+ year = {2021},
41
+ month = aug,
42
+ title = {LaTeX Class for the Association for Computing Machinery -- Acknowledgement Information},
43
+ lastaccessed = {September 17, 2021},
44
+ url = {https://github.com/borisveytsman/acmart/blob/1704c8bf7eee92a1515ff755f5118b6a22bb1f8e/samples/samples.dtx#L709},
45
+ }
46
+ <% } -%>
36
47
 
37
48
  @Comment{jabref-meta: databaseType:bibtex;}
@@ -5,7 +5,7 @@ Cleveref demonstration: Cref at beginning of sentence, cref in all other cases.
5
5
 
6
6
  \begin{figure}
7
7
  \centering
8
- \includegraphics[width=.75\columnwidth]{example-image-a}
8
+ \includegraphics[width=.75\linewidth]{example-image-a}
9
9
  \caption{Example figure for cref demo}
10
10
  \label{fig:ex:cref}
11
11
  \end{figure}