generator-latex-template 2026.6.13 → 2026.6.26
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 +2 -1
- package/generators/app/index.js +25 -1
- package/generators/app/options.js +27 -0
- package/generators/app/templates/.github/workflows/check.yml +22 -5
- package/generators/app/templates/README.en.md +22 -0
- package/generators/app/templates/Texlivefile +4 -0
- package/generators/app/templates/abbreviations.de.tex +5 -1
- package/generators/app/templates/abbreviations.en.tex +3 -0
- package/generators/app/templates/abbreviations.example.de.tex +1 -1
- package/generators/app/templates/abbreviations.example.en.tex +2 -2
- package/generators/app/templates/babel.preamble.en.tex +2 -2
- package/generators/app/templates/csquotes.preamble.en.tex +1 -1
- package/generators/app/templates/docs/latex-setup.md +58 -0
- package/generators/app/templates/dot.aspell.en.pws +7 -1
- package/generators/app/templates/floatflt.preamble.en.tex +1 -1
- package/generators/app/templates/floats.preamble.en.tex +15 -8
- package/generators/app/templates/font.preamble.en.tex +29 -31
- package/generators/app/templates/footnotes.preamble.en.tex +11 -14
- package/generators/app/templates/hyperref.preamble.en.tex +1 -1
- package/generators/app/templates/latexmkrc +7 -0
- package/generators/app/templates/listings.preamble.de.tex +12 -12
- package/generators/app/templates/listings.preamble.en.tex +13 -13
- package/generators/app/templates/localSettings.yaml +6 -0
- package/generators/app/templates/longtable.example.en.tex +37 -0
- package/generators/app/templates/longtable.preamble.en.tex +2 -0
- package/generators/app/templates/main.de.tex +47 -5
- package/generators/app/templates/main.en.tex +55 -5
- package/generators/app/templates/math.example.en.tex +35 -0
- package/generators/app/templates/math.preamble.en.tex +10 -2
- package/generators/app/templates/microtype.preamble.en.tex +1 -1
- package/generators/app/templates/nowidow.preamble.en.tex +7 -0
- package/generators/app/templates/pgfplots.example.en.tex +31 -0
- package/generators/app/templates/plantuml.example.en.tex +27 -0
- package/generators/app/templates/subfig.preamble.en.tex +1 -1
- package/generators/app/templates/tables.preamble.de.tex +3 -0
- package/generators/app/templates/thesis-additions.en.tex +43 -43
- package/generators/app/templates/thesis-additions.examples.en.tex +43 -43
- package/generators/app/templates/tikz.example.en.tex +17 -0
- package/generators/app/templates/tikz.preamble.en.tex +4 -0
- package/generators/app/templates/tikzuml.example.en.tex +46 -0
- package/generators/app/templates/todos.example.de.tex +35 -0
- package/generators/app/templates/todos.example.en.tex +9 -9
- package/generators/app/templates/todos.preamble.en.tex +4 -4
- package/generators/app/templates/uml.plantuml.preamble.en.tex +6 -0
- package/generators/app/templates/uml.tikzuml.preamble.en.tex +4 -0
- package/generators/app/templates/url.preamble.en.tex +1 -1
- package/generators/app/templates/ustutt-pagestyle.preamble.en.tex +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -201,13 +201,14 @@ ejslint.cmd c:\git-repositories\latextemplates\generator-latex-template\generato
|
|
|
201
201
|
|
|
202
202
|
### Releasing a new version
|
|
203
203
|
|
|
204
|
-
1.
|
|
204
|
+
1. Once the `refine-ltg` PR is green, **squash-merge** it into `main`; check `main` out and pull.
|
|
205
205
|
2. Update `CHANGELOG.md` (change `h2` heading etc.)
|
|
206
206
|
3. Update `package.json`, publish to [npmjs](https://www.npmjs.com/package/generator-latex-template), create GitHub release.
|
|
207
207
|
Use [release-it](https://www.npmjs.com/package/release-it) (do not create a release on GitHub) and [github-release-from-changelog](https://www.npmjs.com/package/github-release-from-changelog).
|
|
208
208
|
|
|
209
209
|
- `npx release-it`
|
|
210
210
|
- `npx github-release-from-changelog`
|
|
211
|
+
4. On `main`, run `scripts/end-new-cycle.sh`, then **squash-merge** each template's "Update LTG" PR once it is green.
|
|
211
212
|
|
|
212
213
|
## License
|
|
213
214
|
|
package/generators/app/index.js
CHANGED
|
@@ -110,8 +110,32 @@ export default class extends Generator {
|
|
|
110
110
|
this.props.thesisvariant = "none";
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
// The UML example is thesis-only and opt-in (see options.js). Default it to
|
|
114
|
+
// "none" for every case where it was not asked (papers, examples disabled).
|
|
115
|
+
if (!this.props.uml) {
|
|
116
|
+
this.props.uml = "none";
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// `longtable` is a plain CLI flag (no prompt), so it never blocks
|
|
120
|
+
// non-interactive generation. It toggles the longtable package and its
|
|
121
|
+
// example; default on.
|
|
122
|
+
this.props.longtable =
|
|
123
|
+
this.options.longtable === undefined
|
|
124
|
+
? true
|
|
125
|
+
: this.options.longtable === true || this.options.longtable === "true";
|
|
126
|
+
|
|
127
|
+
// Only minted and the PlantUML UML example need shell-escape; tikz-uml and the
|
|
128
|
+
// remaining thesis content do not.
|
|
113
129
|
this.props.requiresShellEscape =
|
|
114
|
-
this.props.
|
|
130
|
+
this.props.listings == "minted" || this.props.uml == "plantuml";
|
|
131
|
+
|
|
132
|
+
// Two-column layouts (IEEE, and the ACM conference/journal formats) cannot use
|
|
133
|
+
// `longtable` ("longtable not in 1-column mode"), so the longtable example must
|
|
134
|
+
// be skipped there.
|
|
135
|
+
this.props.twocolumn =
|
|
136
|
+
this.props.documentclass === "ieee" ||
|
|
137
|
+
(this.props.documentclass === "acmart" &&
|
|
138
|
+
["acmtog", "sigconf", "sigplan"].includes(this.props.acmformat));
|
|
115
139
|
|
|
116
140
|
if (this.props.docker == "no") {
|
|
117
141
|
// converts command-line "no" to the boolean equivalent
|
|
@@ -430,4 +430,31 @@ export const options = [
|
|
|
430
430
|
message: "Include minimal LaTeX examples?",
|
|
431
431
|
default: true,
|
|
432
432
|
},
|
|
433
|
+
{
|
|
434
|
+
type: "list",
|
|
435
|
+
name: "uml",
|
|
436
|
+
when(response) {
|
|
437
|
+
return (
|
|
438
|
+
(response.documentclass === "scientific-thesis" ||
|
|
439
|
+
response.documentclass === "ustutt") &&
|
|
440
|
+
(response.examples === true || response.examples === "true")
|
|
441
|
+
);
|
|
442
|
+
},
|
|
443
|
+
message: "Which package for the UML diagram example?",
|
|
444
|
+
choices: [
|
|
445
|
+
{
|
|
446
|
+
name: "None (no UML example)",
|
|
447
|
+
value: "none",
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
name: "tikz-uml (not in TeX Live; added as a git submodule)",
|
|
451
|
+
value: "tikz-uml",
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
name: "PlantUML (needs LuaLaTeX, --shell-escape, and a PlantUML/Java install)",
|
|
455
|
+
value: "plantuml",
|
|
456
|
+
},
|
|
457
|
+
],
|
|
458
|
+
default: "none",
|
|
459
|
+
},
|
|
433
460
|
];
|
|
@@ -16,12 +16,22 @@ jobs:
|
|
|
16
16
|
runs-on: ubuntu-latest
|
|
17
17
|
steps:
|
|
18
18
|
- name: Set up Git repository
|
|
19
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@v7
|
|
20
|
+
<% if (uml == "tikz-uml") { -%>
|
|
21
|
+
with:
|
|
22
|
+
# Recursive checkout brings in the tikz-uml submodule used by the UML example.
|
|
23
|
+
submodules: recursive
|
|
24
|
+
<% } -%>
|
|
20
25
|
- name: Install TeX Live
|
|
21
26
|
uses: zauguin/install-texlive@v4
|
|
22
27
|
with:
|
|
23
28
|
package_file: '${{ github.workspace }}/Texlivefile'
|
|
24
29
|
texlive_version: <%= texlive %>
|
|
30
|
+
<% if (uml == "plantuml") { -%>
|
|
31
|
+
- name: Install PlantUML
|
|
32
|
+
# Renders the PlantUML UML example (needs Java + the plantuml tool; --shell-escape is set in latexmkrc).
|
|
33
|
+
run: sudo apt-get update && sudo apt-get install -y plantuml
|
|
34
|
+
<% } -%>
|
|
25
35
|
- name: Prepare latexmk
|
|
26
36
|
run: |
|
|
27
37
|
updmap -sys
|
|
@@ -83,7 +93,7 @@ jobs:
|
|
|
83
93
|
runs-on: ubuntu-latest
|
|
84
94
|
steps:
|
|
85
95
|
- name: Set up Git repository
|
|
86
|
-
uses: actions/checkout@
|
|
96
|
+
uses: actions/checkout@v7
|
|
87
97
|
- name: Install TeX Live
|
|
88
98
|
uses: zauguin/install-texlive@v4
|
|
89
99
|
with:
|
|
@@ -122,7 +132,7 @@ jobs:
|
|
|
122
132
|
runs-on: ubuntu-latest
|
|
123
133
|
steps:
|
|
124
134
|
- name: Set up Git repository
|
|
125
|
-
uses: actions/checkout@
|
|
135
|
+
uses: actions/checkout@v7
|
|
126
136
|
|
|
127
137
|
# Original action does not work well - see https://github.com/awalsh128/cache-apt-pkgs-action/pull/136
|
|
128
138
|
# The action is not updated - and thus the dictionaries are not updated
|
|
@@ -147,8 +157,15 @@ jobs:
|
|
|
147
157
|
fi
|
|
148
158
|
echo "Checking $tex..."
|
|
149
159
|
|
|
160
|
+
# Pick the dictionary that matches the file's language: the "-de"
|
|
161
|
+
# variants are German, everything else uses the document's language.
|
|
162
|
+
case "$tex" in
|
|
163
|
+
*-de.tex|*-de-*.tex) aspell_lang="-l de_DE --run-together"; aspell_pws=de ;;
|
|
164
|
+
*) aspell_lang="<% if (language == 'de') { %>-l de_DE --run-together<% } else { %>-l en_US<% } %>"; aspell_pws=<%= language %> ;;
|
|
165
|
+
esac
|
|
166
|
+
|
|
150
167
|
# Words are output in the order they appear in the document
|
|
151
|
-
words=$(aspell --mode=tex
|
|
168
|
+
words=$(aspell --mode=tex $aspell_lang --encoding=utf-8 --conf=./.aspell.conf -p ./.aspell.$aspell_pws.pws list < $tex | tr '\n' ' ')
|
|
152
169
|
if [ -z "$words" ]; then
|
|
153
170
|
echo "| $tex | ✅ |" >> $GITHUB_STEP_SUMMARY
|
|
154
171
|
else
|
|
@@ -167,7 +184,7 @@ jobs:
|
|
|
167
184
|
runs-on: ubuntu-latest
|
|
168
185
|
steps:
|
|
169
186
|
- name: Set up Git repository
|
|
170
|
-
uses: actions/checkout@
|
|
187
|
+
uses: actions/checkout@v7
|
|
171
188
|
- uses: awalsh128/cache-apt-pkgs-action@latest
|
|
172
189
|
with:
|
|
173
190
|
packages: libyaml-tiny-perl libfile-homedir-perl
|
|
@@ -386,6 +386,28 @@ To have minted running properly, you have to do following steps on Windows:
|
|
|
386
386
|
3. When latexing, use `-shell-escape`: `pdflatex -shell-escape <%= filenames.main %>`.
|
|
387
387
|
You can also just execute `latexmk <%= filenames.main %>`.
|
|
388
388
|
<% } -%>
|
|
389
|
+
<% if (uml != "none") { -%>
|
|
390
|
+
|
|
391
|
+
### UML diagram example
|
|
392
|
+
|
|
393
|
+
The "LaTeX Hints" chapter contains a UML example that needs extra setup.
|
|
394
|
+
It is skipped automatically when its prerequisites are missing, so the document always compiles.
|
|
395
|
+
<% if (uml == "tikz-uml") { -%>
|
|
396
|
+
|
|
397
|
+
`tikz-uml` is not part of TeX Live.
|
|
398
|
+
Add it as a git submodule and put it on the LaTeX search path via `TEXINPUTS`:
|
|
399
|
+
|
|
400
|
+
```console
|
|
401
|
+
git submodule add https://plmlab.math.cnrs.fr/tikzuml/tikzuml.git tikz-uml
|
|
402
|
+
TEXINPUTS="./tikz-uml:$TEXINPUTS" latexmk <%= filenames.main %>
|
|
403
|
+
```
|
|
404
|
+
<% } -%>
|
|
405
|
+
<% if (uml == "plantuml") { -%>
|
|
406
|
+
|
|
407
|
+
PlantUML renders only with LuaLaTeX, the `--shell-escape` flag, and a PlantUML installation (which needs Java).
|
|
408
|
+
Install PlantUML (for example `choco install plantuml` on Windows) and compile with `lualatex --shell-escape`.
|
|
409
|
+
<% } -%>
|
|
410
|
+
<% } -%>
|
|
389
411
|
|
|
390
412
|
### VS Code configuration
|
|
391
413
|
|
|
@@ -224,6 +224,10 @@ pdfpages
|
|
|
224
224
|
<% } -%>
|
|
225
225
|
<% if (githubpublish || examples) { -%>
|
|
226
226
|
pgf
|
|
227
|
+
pgfplots<%# used by the pgfplots example; also provides pgfplotstable %>
|
|
228
|
+
<% } -%>
|
|
229
|
+
<% if (githubpublish || (uml == "plantuml")) { -%>
|
|
230
|
+
plantuml<%# plantuml.sty for the PlantUML UML example; the diagram also needs an external PlantUML install %>
|
|
227
231
|
<% } -%>
|
|
228
232
|
pict2e
|
|
229
233
|
<% if (githubpublish || (documentclass == "ustutt")) { -%>
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
% Hier stehen alle Abkürzungen
|
|
2
|
-
|
|
2
|
+
% `fr` wird vom deutschen Beispiel verwendet, `er` vom englischen. Beide sind in
|
|
3
|
+
% beiden Abkürzungslisten definiert, weil das Template eine einzige abbreviations.tex
|
|
4
|
+
% ausliefert, die jede Hauptdatei (deutsch und englisch) lädt -- ein undefinierter
|
|
5
|
+
% Eintrag bricht den Build ab.
|
|
3
6
|
\newabbreviation{fr}{FR}{Fehlerrate}
|
|
7
|
+
\newabbreviation{er}{ER}{error rate}
|
|
4
8
|
\newabbreviation[shortplural={RDBMS},longplural={RDBMS}]{rdbms}{RDBMS}{Relational Database Management System}
|
|
5
9
|
\newabbreviation[category=abbreviationdot]{dante}{DANTE e.V.}{Deutschsprachige Anwendervereinigung \TeX\ e.V.}
|
|
6
10
|
\newabbreviation{gp}{G.P.}{General Practitioner}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
% Note the difference between "acronym" and "abbreviation": https://english.stackexchange.com/q/3755/66058
|
|
2
2
|
% We regard abbreviation as superset of acronym
|
|
3
|
+
% `er` is used by the English example, `fr` by the German one. Both are defined in
|
|
4
|
+
% both abbreviation lists because the template ships a single abbreviations.tex that
|
|
5
|
+
% every main file (English and German) loads -- an undefined entry breaks the build.
|
|
3
6
|
\newabbreviation{er}{ER}{error rate}
|
|
4
7
|
\newabbreviation{fr}{FR}{Fehlerrate}
|
|
5
8
|
\newabbreviation[shortplural={RDBMS},longplural={RDBMS}]{rdbms}{RDBMS}{Relational Database Management System}
|
|
@@ -14,7 +14,7 @@ Mehr Infos unter: \url{https://ctan.org/pkg/bib2gls}.
|
|
|
14
14
|
<%- bexample %>
|
|
15
15
|
Beim ersten Durchlauf betrug die \gls{fr} 5.
|
|
16
16
|
Beim zweiten Durchlauf war die \gls{fr} 3.
|
|
17
|
-
Die Pluralform sieht man hier: \glspl{
|
|
17
|
+
Die Pluralform sieht man hier: \glspl{fr}.
|
|
18
18
|
Um zu demonstrieren, wie das Abkürzungsverzeichnis bei längeren Beschreibungstexten aussieht, muss hier noch \glspl{rdbms} erwähnt werden.
|
|
19
19
|
|
|
20
20
|
\gls{dante} is a local \TeX\ user group.
|
|
@@ -12,8 +12,8 @@ Abbreviations are defined in \verb+\content\ausarbeitung.tex+ by means of \verb+
|
|
|
12
12
|
More information at: \url{https://ctan.org/pkg/bib2gls}.
|
|
13
13
|
|
|
14
14
|
<%- bexample %>
|
|
15
|
-
At the first pass the \gls{
|
|
16
|
-
At the second pass was \gls{
|
|
15
|
+
At the first pass, the \gls{er} was 5.
|
|
16
|
+
At the second pass was \gls{er} 3.
|
|
17
17
|
The plural form can be seen here: \glspl{er}.
|
|
18
18
|
To demonstrate what the list of abbreviations looks like for longer description texts, \glspl{rdbms} must be mentioned here.
|
|
19
19
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
% Set English as language and allow to write hyphenated"=words
|
|
1
|
+
% Set English as the language and allow to write hyphenated"=words
|
|
2
2
|
%
|
|
3
3
|
% Even though `american`, `english` and `USenglish` are synonyms for babel package (according to https://tex.stackexchange.com/questions/12775/babel-english-american-usenglish), the llncs document class is prepared to avoid the overriding of certain names (such as "Abstract." -> "Abstract" or "Fig." -> "Figure") when using `english`, but not when using the other 2.
|
|
4
|
-
% english has to go last to set it as default language
|
|
4
|
+
% english has to go last to set it as the default language
|
|
5
5
|
\usepackage[ngerman,main=english]{babel}
|
|
6
6
|
<% if (tweakouterquote == "babel") { -%>
|
|
7
7
|
%
|
|
@@ -108,6 +108,64 @@ If you installed MiKTeX other ways, you have to run "Update MiKTeX (Admin)" and
|
|
|
108
108
|
8. Execute `initexmf --update-fndb` (ensure that no other MiKTeX tooling such as the [MiKTeX Console](https://miktex.org/howto/miktex-console) is run in parallel - see <https://github.com/MiKTeX/miktex/issues/98#issuecomment-375952270>)
|
|
109
109
|
9. Execute `initexmf --mklinks --force`
|
|
110
110
|
|
|
111
|
+
## Using VSCode to Edit, Compile, and Preview PDFs
|
|
112
|
+
|
|
113
|
+
***Note: The configuration of LaTeX Workshop on [Fast Guide on Writing LaTeX with LaTeX Workshop in VS Code](https://mathjiajia.github.io/vscode-and-latex/) may require some modifications to work with this template.***
|
|
114
|
+
|
|
115
|
+
### Prerequisites
|
|
116
|
+
|
|
117
|
+
1. Install [VSCode](https://code.visualstudio.com/).
|
|
118
|
+
2. Install [LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop).
|
|
119
|
+
3. Install a LaTeX distribution (e.g., [MiKTeX](https://miktex.org/download) or [TeX Live](https://www.tug.org/texlive/)).
|
|
120
|
+
|
|
121
|
+
### Recommended Setup of VSCode
|
|
122
|
+
|
|
123
|
+
1. Open VSCode.
|
|
124
|
+
2. Press <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>P</kbd> to open the command palette. Then type "JSON" and select "Preferences: Open Settings (JSON)" to open `settings.json`.
|
|
125
|
+
3. Now copy and paste the following snippet into your `settings.json` file (inside the brackets `{}` of your file).
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
"latex-workshop.latex.tools": [
|
|
129
|
+
{
|
|
130
|
+
"name": "pdflatex",
|
|
131
|
+
"command": "pdflatex",
|
|
132
|
+
"args": [
|
|
133
|
+
"-synctex=1",
|
|
134
|
+
"-interaction=nonstopmode",
|
|
135
|
+
"-file-line-error",
|
|
136
|
+
"%DOC%"
|
|
137
|
+
],
|
|
138
|
+
"env": {}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "biber",
|
|
142
|
+
"command": "biber",
|
|
143
|
+
"args": [
|
|
144
|
+
"%DOCFILE%"
|
|
145
|
+
],
|
|
146
|
+
"env": {}
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
|
|
150
|
+
"latex-workshop.latex.recipes": [
|
|
151
|
+
{
|
|
152
|
+
"name": "pdflatex ➞ biber ➞ pdflatexX2",
|
|
153
|
+
"tools": [
|
|
154
|
+
"pdflatex",
|
|
155
|
+
"biber",
|
|
156
|
+
"pdflatex",
|
|
157
|
+
"pdflatex"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
4. (optional) If you add the following line into your `settings.json`, the LaTeX Workshop extension will not automatically compile the code after any changes. You can manually trigger compilation by hitting the green button in the extension or using other methods provided by LaTeX Workshop.
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
"latex-workshop.latex.autoBuild.run": "never",
|
|
167
|
+
```
|
|
168
|
+
|
|
111
169
|
[chocolatey]: https://chocolatey.org/
|
|
112
170
|
[JabRef]: https://www.jabref.org
|
|
113
171
|
[LanguageTool]: https://languagetool.org/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
personal_ws-1.1 en
|
|
1
|
+
personal_ws-1.1 en 128 utf-8
|
|
2
2
|
ACM
|
|
3
3
|
Atlantic
|
|
4
4
|
BPEL
|
|
@@ -50,6 +50,7 @@ breaklines
|
|
|
50
50
|
category
|
|
51
51
|
cls
|
|
52
52
|
commentstyle
|
|
53
|
+
compat
|
|
53
54
|
cref
|
|
54
55
|
da
|
|
55
56
|
dante
|
|
@@ -72,6 +73,7 @@ fr
|
|
|
72
73
|
funktioniert
|
|
73
74
|
für
|
|
74
75
|
geändert
|
|
76
|
+
gnuplot
|
|
75
77
|
gp
|
|
76
78
|
html
|
|
77
79
|
hypertext
|
|
@@ -85,6 +87,7 @@ lastname
|
|
|
85
87
|
letzten
|
|
86
88
|
linenos
|
|
87
89
|
longplural
|
|
90
|
+
longtable
|
|
88
91
|
lst
|
|
89
92
|
lstlisting
|
|
90
93
|
markup
|
|
@@ -100,8 +103,10 @@ numberstyle
|
|
|
100
103
|
nur
|
|
101
104
|
oldstyle
|
|
102
105
|
paralist
|
|
106
|
+
pgfplots
|
|
103
107
|
powerset
|
|
104
108
|
produziert
|
|
109
|
+
programmatically
|
|
105
110
|
pygments
|
|
106
111
|
rdbms
|
|
107
112
|
seit
|
|
@@ -114,6 +119,7 @@ subcaption
|
|
|
114
119
|
subfig
|
|
115
120
|
subfigure
|
|
116
121
|
subfigures
|
|
122
|
+
tikz
|
|
117
123
|
tion
|
|
118
124
|
tt
|
|
119
125
|
werden
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
\usepackage{wrapfig} % defines wrapfigure and wrapfloat
|
|
14
14
|
%\setlength{\wrapoverhang}{\marginparwidth} % aeerlapp des Bildes ...
|
|
15
15
|
%\addtolength{\wrapoverhang}{\marginparsep} % ... in den margin
|
|
16
|
-
\setlength{\intextsep}{0.5\baselineskip} %
|
|
16
|
+
\setlength{\intextsep}{0.5\baselineskip} % Space above and below the image
|
|
17
17
|
% \intextsep ignoiert bei draft ???
|
|
18
18
|
%\setlength{\columnsep}{1em} % Abstand zum Text
|
|
19
19
|
-%>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
% figures and placement
|
|
4
4
|
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
5
5
|
|
|
6
|
-
%%
|
|
6
|
+
%% Images and graphics ==================================================
|
|
7
7
|
|
|
8
8
|
%%% Doc: float.div
|
|
9
9
|
%floatrow is the successor of float
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
%--> use predecessor float
|
|
14
14
|
\usepackage{float}
|
|
15
15
|
|
|
16
|
-
%
|
|
17
|
-
%
|
|
16
|
+
% See http://www.tex.ac.uk/cgi-bin/texfaq2html?label=floats
|
|
17
|
+
% Always place floats AFTER a reference to them
|
|
18
18
|
%\usepackage{flafter}
|
|
19
19
|
|
|
20
20
|
% Defines a \FloatBarrier command, beyond which floats may not
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
%%% Doc: http://mirror.ctan.org/tex-archive/macros/latex/contrib/subfig/subfig.pdf
|
|
29
29
|
% Incompatible: loads package capt-of. Loading of 'capt-of' afterwards will fail therefor
|
|
30
|
-
%\usepackage{subfig} % Layout
|
|
30
|
+
%\usepackage{subfig} % Layout is configured further below!
|
|
31
31
|
|
|
32
32
|
% Make float placement easier
|
|
33
33
|
% See also http://dcwww.camd.dtu.dk/~schiotz/comp/LatexTips/LatexTips.html#figplacement
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
\setcounter{totalnumber}{5} % vorher: 3
|
|
41
41
|
|
|
42
42
|
%%% Doc: http://mirror.ctan.org/tex-archive/macros/latex/contrib/psfrag/pfgguide.pdf
|
|
43
|
-
% \usepackage{psfrag} %
|
|
43
|
+
% \usepackage{psfrag} % Replacing characters in eps images
|
|
44
44
|
|
|
45
45
|
%%% Doc: http://www.ctan.org/tex-archive/macros/latex/contrib/sidecap/sidecap.pdf
|
|
46
46
|
\usepackage[%
|
|
@@ -63,9 +63,16 @@
|
|
|
63
63
|
<% if (isThesis) { -%>
|
|
64
64
|
|
|
65
65
|
%%%
|
|
66
|
-
%
|
|
67
|
-
%
|
|
68
|
-
%
|
|
66
|
+
% Allows rotating figures by 90 degrees
|
|
67
|
+
% Alternative package: rotating. However, that only rotates the image, whereas lscape also rotates the PDF page.
|
|
68
|
+
% The lscape package does not rotate the page either
|
|
69
69
|
\usepackage{pdflscape}
|
|
70
70
|
|
|
71
|
+
% Align floats to the top on float-only pages instead of vertically centering them.
|
|
72
|
+
% See http://tex.stackexchange.com/a/28565/9075
|
|
73
|
+
\makeatletter
|
|
74
|
+
\setlength{\@fptop}{0pt}
|
|
75
|
+
\setlength{\@fpbot}{0pt plus 1fil}
|
|
76
|
+
\makeatother
|
|
77
|
+
|
|
71
78
|
<% } -%>
|
|
@@ -230,16 +230,15 @@ In addition, we make the code appear more nice -%>
|
|
|
230
230
|
<% } -%>
|
|
231
231
|
|
|
232
232
|
<% if (isThesis) { -%>
|
|
233
|
-
%
|
|
234
|
-
%\usepackage{stmaryrd} %
|
|
235
|
-
%\usepackage{marvosym} %
|
|
236
|
-
%\usepackage{mathrsfs} %
|
|
237
|
-
%\usepackage{calrsfs}
|
|
233
|
+
% Even more symbols
|
|
234
|
+
%\usepackage{stmaryrd} % for \ovee, \owedge, \otimes
|
|
235
|
+
%\usepackage{marvosym} % for \Writinghand %patched to not redefine \Rightarrow
|
|
236
|
+
%\usepackage{mathrsfs} % nice cursive letters via \mathscr{}
|
|
237
|
+
%\usepackage{calrsfs} % slightly bolder \mathcal{} letters - does not look that good.
|
|
238
238
|
|
|
239
|
-
%
|
|
239
|
+
% Fallback font - if the subsequent font packages do not define a font (e.g., monospaced)
|
|
240
240
|
% This is the modern package for "Computer Modern".
|
|
241
241
|
% In case this gets activated, one has to switch from cmap package to glyphtounicode (in the case of pdflatex)
|
|
242
|
-
% DE: Fallback-Schriftart
|
|
243
242
|
%\usepackage[%
|
|
244
243
|
% rm={oldstyle=false,proportional=true},%
|
|
245
244
|
% sf={oldstyle=false,proportional=true},%
|
|
@@ -247,51 +246,50 @@ In addition, we make the code appear more nice -%>
|
|
|
247
246
|
% qt=false%
|
|
248
247
|
%]{cfr-lm}
|
|
249
248
|
|
|
250
|
-
%
|
|
251
|
-
%
|
|
249
|
+
% Headings are typeset in Helvetica (which is similar to Arial)
|
|
250
|
+
% Font for the headings - overrides lmodern
|
|
252
251
|
%\usepackage[scaled=.95]{helvet}
|
|
253
252
|
|
|
254
|
-
%
|
|
253
|
+
% A calligraphic font would work, but is not required
|
|
255
254
|
%\usepackage{mathrsfs} % \mathscr{ABC}
|
|
256
255
|
|
|
257
|
-
%
|
|
258
|
-
%
|
|
259
|
-
% Linux Libertine,
|
|
260
|
-
%
|
|
261
|
-
% rm = libertine
|
|
256
|
+
% Font for the main text
|
|
257
|
+
% Font for the body text - overrides lmodern
|
|
258
|
+
% Linux Libertine, see http://www.linuxlibertine.org/
|
|
259
|
+
% Package parameter [osf] = lowercase (old-style) figures
|
|
260
|
+
% rm = libertine in the body text, Linux Biolinum NOT as sans-serif font, but keep helvet (from above)
|
|
262
261
|
%\usepackage[rm]{libertine}
|
|
263
262
|
|
|
264
|
-
%
|
|
265
|
-
%
|
|
266
|
-
%
|
|
267
|
-
%\usepackage{mathpazo} %ftp://ftp.dante.de/tex-archive/fonts/mathpazo/ -
|
|
268
|
-
%
|
|
269
|
-
%
|
|
270
|
-
% Fuer Palatino (mathpazo.sty): richtiges Euro-Zeichen
|
|
263
|
+
% Alternative Font: Palantino. It is recommended by Prof. Ludewig for German texts
|
|
264
|
+
% Package parameter [osf] = lowercase (old-style) figures
|
|
265
|
+
% Please only in German texts
|
|
266
|
+
%\usepackage{mathpazo} %ftp://ftp.dante.de/tex-archive/fonts/mathpazo/ - tip from DE-TEX-FAQ 8.2.1
|
|
267
|
+
% The euro sign
|
|
268
|
+
% For Palatino (mathpazo.sty): proper euro sign
|
|
271
269
|
% Alternative: \usepackage{eurosym}
|
|
272
270
|
% \newcommand{\EUR}{\ppleuro}
|
|
273
271
|
|
|
274
|
-
%
|
|
275
|
-
%
|
|
276
|
-
%
|
|
272
|
+
% Font for program code - overrides lmodern
|
|
273
|
+
% If commented out, the default font lmodern is used
|
|
274
|
+
% For typewriter-style keywords in the listings - does not work on old installations, since some font shapes (<>=) are missing
|
|
277
275
|
%\usepackage[scaled=.92]{luximono}
|
|
278
276
|
%\usepackage{courier}
|
|
279
|
-
%
|
|
277
|
+
% BeraMono as typewriter font, tip from http://tex.stackexchange.com/a/71346/9075
|
|
280
278
|
%\usepackage[scaled=0.83]{beramono}
|
|
281
279
|
|
|
282
280
|
\usepackage{setspace}
|
|
283
281
|
% Alternative package: https://ctan.org/pkg/leading
|
|
284
282
|
|
|
285
|
-
%
|
|
283
|
+
% Check and cross symbols
|
|
286
284
|
\usepackage{pifont}
|
|
287
285
|
\newcommand{\dingcheck}{\ding{51}}
|
|
288
286
|
\newcommand{\dingcross}{\ding{55}}
|
|
289
287
|
%for scaling see http://tex.stackexchange.com/a/130236/9075
|
|
290
288
|
|
|
291
|
-
%
|
|
292
|
-
%\usepackage{stmaryrd} %
|
|
293
|
-
%\usepackage{marvosym} %
|
|
294
|
-
%\usepackage{mathrsfs} %
|
|
289
|
+
% Even more symbols
|
|
290
|
+
%\usepackage{stmaryrd} % for \ovee, \owedge, \otimes
|
|
291
|
+
%\usepackage{marvosym} % for \Writinghand %patched to not redefine \Rightarrow
|
|
292
|
+
%\usepackage{mathrsfs} % nice cursive letters via \mathscr{}
|
|
295
293
|
%\usepackage{calrsfs} %\mathcal{} ein bisserl dickeren buchstaben erzeugen - sieht net so gut aus.
|
|
296
294
|
|
|
297
295
|
<% } -%>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
%%%
|
|
1
|
+
%%% Footnotes/Endnotes ===================================================
|
|
2
2
|
|
|
3
3
|
<% if (isThesis) { -%>
|
|
4
4
|
%%% Doc: http://mirror.ctan.org/tex-archive/macros/latex/contrib/footmisc/footmisc.pdf
|
|
@@ -17,34 +17,31 @@
|
|
|
17
17
|
|
|
18
18
|
\counterwithout{footnote}{chapter} % Continuous numbering of footnotes across chapters
|
|
19
19
|
|
|
20
|
-
\interfootnotelinepenalty=10000 %
|
|
20
|
+
\interfootnotelinepenalty=10000 % Prevents footnotes from continuing onto the facing page
|
|
21
21
|
|
|
22
22
|
<% } -%>
|
|
23
|
-
%
|
|
24
|
-
% DE: Fußnoten unter Gleitumgebungen ("floats") platzieren
|
|
23
|
+
% Put footnotes below floats
|
|
25
24
|
% Source: https://tex.stackexchange.com/a/32993/9075
|
|
26
25
|
\usepackage{stfloats}
|
|
27
26
|
\fnbelowfloat
|
|
28
27
|
|
|
29
|
-
%
|
|
30
|
-
% DE: Fußnoten
|
|
28
|
+
% Extended support for footnotes
|
|
31
29
|
%
|
|
32
|
-
%\usepackage{dblfnote} %
|
|
30
|
+
%\usepackage{dblfnote} % Two-column footnotes
|
|
33
31
|
%
|
|
34
|
-
%
|
|
32
|
+
% No superscript numbers in the footnote (KOMA-Script-specific):
|
|
35
33
|
%\deffootnote[1.5em]{0pt}{1em}{\makebox[1.5em][l]{\bfseries\thefootnotemark}}
|
|
36
34
|
%
|
|
37
|
-
%
|
|
35
|
+
% Increase the spacing between footnotes:
|
|
38
36
|
%\setlength{\footnotesep}{.85\baselineskip}
|
|
39
37
|
%
|
|
40
|
-
%
|
|
41
|
-
% DE: Folgendes Kommando deaktiviert die Trennlinie zur Fußnote
|
|
38
|
+
% Following command disables the separating line of the footnote
|
|
42
39
|
%\renewcommand{\footnoterule}{}
|
|
43
40
|
%
|
|
44
|
-
%\addtolength{\skip\footins}{\baselineskip} %
|
|
41
|
+
%\addtolength{\skip\footins}{\baselineskip} % Spacing text <-> footnote
|
|
45
42
|
|
|
46
|
-
%
|
|
47
|
-
%
|
|
43
|
+
% Always place footnotes at the very bottom on a \raggedbottom page
|
|
44
|
+
% fnpos comes from the yafoot package
|
|
48
45
|
%\usepackage{fnpos}
|
|
49
46
|
%\makeFNbelow
|
|
50
47
|
%\makeFNbottom
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
pdfauthor={}, % Autor
|
|
31
31
|
pdfcreator={LaTeX, hyperref, KOMA-Script}, % Ersteller
|
|
32
32
|
%pdfproducer={pdfeTeX 1.10b-2.1} %Produzent
|
|
33
|
-
pdfdisplaydoctitle=true, %
|
|
33
|
+
pdfdisplaydoctitle=true, % document title instead of file name in the window title
|
|
34
34
|
pdfpagemode=UseOutlines, % Bookmarks im Viewer anzeigen
|
|
35
35
|
pdfpagelabels=true, % set PDF page labels
|
|
36
36
|
pdfpagelayout=TwoPageRight, % zweiseitige Darstellung: ungerade Seiten rechts im PDF-Viewer
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
$pdflatex = '<%= reallatexcompiler %> <% if (requiresShellEscape) { %>--shell-escape <% } %>--file-line-error --synctex=-1 %O %S';
|
|
2
|
+
<% if (uml == "tikz-uml") { -%>
|
|
3
|
+
|
|
4
|
+
# Make the tikz-uml package visible. It is not part of TeX Live and is provided
|
|
5
|
+
# as a git submodule in the "tikz-uml" directory (see the README). The recursive
|
|
6
|
+
# "//" lets kpathsea find tikz-uml.sty wherever it lives inside that submodule.
|
|
7
|
+
$ENV{'TEXINPUTS'} = './tikz-uml//:' . ($ENV{'TEXINPUTS'} // '');
|
|
8
|
+
<% } -%>
|
|
2
9
|
|
|
3
10
|
#Use SumatraPDF instead of the default PDF viewer
|
|
4
11
|
$pdf_previewer = 'start "C:\Program Files\SumatraPDF\SumatraPDF.exe"';
|
|
@@ -97,18 +97,18 @@
|
|
|
97
97
|
<%= indent %>% Siehe https://stackoverflow.com/a/29260603/873282 und https://tex.stackexchange.com/a/24532/9075 für Details.
|
|
98
98
|
<%= indent %>% listingsutf8 hat im Juni 2020 nicht funktioniert.
|
|
99
99
|
<%= indent %>\lstset{extendedchars=true, literate=
|
|
100
|
-
<%= indent %>
|
|
101
|
-
<%= indent %>{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
|
|
102
|
-
<%= indent %>{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
|
|
103
|
-
<%= indent %>{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
|
|
104
|
-
<%= indent %>{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
|
|
105
|
-
<%= indent %>{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
|
|
106
|
-
<%= indent %>{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
|
|
107
|
-
<%= indent %>{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
|
|
108
|
-
<%= indent %>{Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1
|
|
109
|
-
<%= indent %>{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
|
|
110
|
-
<%= indent %>{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
|
|
111
|
-
<%= indent %>{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
|
|
100
|
+
<%= indent %> {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
|
|
101
|
+
<%= indent %> {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
|
|
102
|
+
<%= indent %> {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
|
|
103
|
+
<%= indent %> {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
|
|
104
|
+
<%= indent %> {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
|
|
105
|
+
<%= indent %> {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
|
|
106
|
+
<%= indent %> {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
|
|
107
|
+
<%= indent %> {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
|
|
108
|
+
<%= indent %> {Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1
|
|
109
|
+
<%= indent %> {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
|
|
110
|
+
<%= indent %> {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
|
|
111
|
+
<%= indent %> {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
|
|
112
112
|
<%= indent %>}
|
|
113
113
|
<% if (latexcompiler == "both") { -%>
|
|
114
114
|
\fi
|