generator-latex-template 2025.2.14 → 2025.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -77,8 +77,8 @@ You can use the magic of `git` to prevent that:
77
77
 
78
78
  ## Resources
79
79
 
80
- - [IEEE](https://latextemplates.github.io/IEEE/) - example: [paper-conference-minted.tex](https://github.com/latextemplates/IEEE/blob/main/paper-conference-minted.tex)
81
- - [LNCS](https://latextemplates.github.io/LNCS/) - example: [paper.tex](https://github.com/latextemplates/LNCS/blob/main/paper.tex)
80
+ - [IEEE](https://latextemplates.github.io/ieee-enhanced/) - example: [paper-conference-minted.tex](https://github.com/latextemplates/ieee-enhanced/blob/main/paper-conference-minted.tex)
81
+ - [LNCS](https://latextemplates.github.io/lncs-enhanced/) - example: [paper.tex](https://github.com/latextemplates/lncs-enhanced/blob/main/paper.tex)
82
82
  - [scientific-thesis-template](https://latextemplates.github.io/scientific-thesis-template/) - example: [latexhints-english.tex](https://github.com/latextemplates/scientific-thesis-template/blob/main/latexhints-english.tex)
83
83
  - [alpenwasser/TeX](https://github.com/alpenwasser/TeX)
84
84
 
@@ -123,7 +123,8 @@ In the long run, the contents of the `paper.tex` (and similar) files in reposito
123
123
  - Cancel workflows:
124
124
  - `gh run list -L 100 --json databaseId -s queued -R latextemplates/generator-latex-template | jq -r '.[] | .databaseId' | awk '{gsub(/\\r\\n/,RS)} 1' | while read -r run_id; do gh run cancel "$run_id" -R latextemplates/generator-latex-template || true; done`
125
125
  - `gh run list -L 100 --json databaseId -s in_progress -R latextemplates/generator-latex-template | jq -r '.[] | .databaseId' | awk '{gsub(/\\r\\n/,RS)} 1' | while read -r run_id; do gh run cancel "$run_id" -R latextemplates/generator-latex-template || true; done`
126
- - Update submodule of "derived" templates (LNCS, ...): `[ -z "$(git status --porcelain)" ] && cd generator-latex-template/ && git pull && cd .. && git add . && git commit -m"Update LTG" && git pull --rebase && git push`
126
+ - Update submodule of "derived" templates (LNCS, ...): `scripts/spread-updates.sh`
127
+ - Sort `dot.aspell.en.pws`: `cat dot.aspell.en.pws | (sed -u 1q; sort) | sponge dot.aspell.en.pws` <!-- hint by https://stackoverflow.com/a/56151840/873282 -->
127
128
 
128
129
  ### Testing
129
130
 
@@ -65,7 +65,7 @@ export default class extends Generator {
65
65
  //this.props.latexcompiler = "pdflatex";
66
66
  //}
67
67
 
68
- this.props.reallatexcompiler = (this.options.latexcompiler == "both") ? "lualatex" : this.options.latexcompiler;
68
+ this.props.reallatexcompiler = (this.props.latexcompiler == "both") ? "lualatex" : this.props.latexcompiler;
69
69
 
70
70
  // Convert "String" Boolean command line options
71
71
  this.props.acmreview =
@@ -101,6 +101,8 @@ export default class extends Generator {
101
101
  this.props.equote = "\"'";
102
102
  }
103
103
 
104
+ isPaperHandling(props);
105
+
104
106
  this.props.requiresShellEscape = this.props.isThesis || this.props.listings == "minted";
105
107
 
106
108
  if (this.props.docker == "no") {
@@ -108,7 +110,6 @@ export default class extends Generator {
108
110
  this.props.docker = false;
109
111
  }
110
112
 
111
- isPaperHandling(props);
112
113
  createFeatures(props);
113
114
  createHeadingCommands(props);
114
115
  createAvailable(props);
@@ -216,14 +217,22 @@ export default class extends Generator {
216
217
  this.destinationPath("Makefile"),
217
218
  this.props
218
219
  );
220
+
219
221
  this.fs.copy(
220
222
  this.templatePath("dot.aspell.conf"),
221
223
  this.destinationPath(".aspell.conf")
222
224
  );
223
- this.fs.copy(
224
- this.templatePath("dot.aspell.en.pws"),
225
- this.destinationPath(".aspell.en.pws")
226
- );
225
+ if ((this.props.language == "de") || (this.props.githubpublish)) {
226
+ this.fs.copy(
227
+ this.templatePath("dot.aspell.de.pws"),
228
+ this.destinationPath(".aspell.de.pws"));
229
+ }
230
+ if ((this.props.language == "en") || (this.props.githubpublish)) {
231
+ this.fs.copy(
232
+ this.templatePath("dot.aspell.en.pws"),
233
+ this.destinationPath(".aspell.en.pws"));
234
+ }
235
+
227
236
  if (this.props.documentclass === "lncs") {
228
237
  this.fs.copy(
229
238
  this.templatePath("splncs04nat.bst"),
@@ -138,15 +138,14 @@ export const options = [
138
138
  {
139
139
  name: "TeXLive 2024",
140
140
  value: 2024,
141
- },
141
+ }
142
142
  ];
143
- /* if (!state.overleaf) {
143
+ if (!state.overleaf) {
144
144
  res.push({
145
- name: "TeXLive 2023",
146
- value: 2023,
145
+ name: "TeXLive 2025",
146
+ value: 2025,
147
147
  });
148
148
  }
149
- */
150
149
  return res;
151
150
  },
152
151
  default(state) {
@@ -154,31 +153,51 @@ export const options = [
154
153
  return 2024;
155
154
  }
156
155
 
157
- return 2024;
156
+ return 2025;
158
157
  },
159
158
  },
160
159
  {
161
160
  type: "list",
162
161
  name: "latexcompiler",
163
162
  message: "Which latex compiler should be used?",
164
- choices: [
165
- {
166
- name: "pdflatex",
167
- value: "pdflatex",
168
- },
169
- {
170
- name: "lualatex",
171
- value: "lualatex",
172
- },
173
- {
174
- name: "lualatex and pdflatex (if switches in .tex files; default lualatex)",
175
- value: "both",
176
- },
177
- ],
178
- default: "both",
179
- when(response) {
180
- return !(response.documentclass === "ieee");
163
+ choices(state) {
164
+ const res = [
165
+ {
166
+ name: "pdflatex",
167
+ value: "pdflatex",
168
+ }
169
+ ];
170
+ if (state.texlive == 2025) {
171
+ res.push(
172
+ {
173
+ name: "pdflatex-dev",
174
+ value: "pdflatex-dev",
175
+ }
176
+ );
177
+ }
178
+ res.push(
179
+ {
180
+ name: "lualatex",
181
+ value: "lualatex",
182
+ }
183
+ );
184
+ if (state.texlive == 2025) {
185
+ res.push(
186
+ {
187
+ name: "lualatex-dev",
188
+ value: "lualatex-dev",
189
+ }
190
+ );
191
+ }
192
+ res.push(
193
+ {
194
+ name: "lualatex and pdflatex (if switches in .tex files; default lualatex)",
195
+ value: "both",
196
+ }
197
+ );
198
+ return res;
181
199
  },
200
+ default: "both",
182
201
  },
183
202
  {
184
203
  when(response) {
@@ -9,7 +9,7 @@ concurrency:
9
9
  cancel-in-progress: true
10
10
  jobs:
11
11
  pdf:
12
- name: latexmk <%= filenames.main %>
12
+ name: pdf (latexmk <%= filenames.main %>)
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
15
  - name: Set up Git repository
@@ -27,26 +27,39 @@ jobs:
27
27
  cp "_latexmkrc" "latexmkrc"
28
28
  fi
29
29
  - run: latexmk <%= filenames.main %>
30
- <% if (githubpublish || (lang == "en") && (reallatexcompiler == "lualatex")) { -%>
30
+ <% if (githubpublish || (lang == "en") && (reallatexcompiler.startsWith("lualatex"))) { -%>
31
31
 
32
32
  # Highlight mis-spelled words in the PDF
33
- - uses: bscott-zebra/cache-apt-pkgs-action@avoid_using_xargs
33
+ - uses: awalsh128/cache-apt-pkgs-action@latest
34
34
  with:
35
35
  packages: aspell aspell-en<% if (githubpublish || (language == 'de')) { %> aspell-de<% } %>
36
36
  version: 1.0
37
37
  execute_install_scripts: true
38
+ - name: post-setup aspell
39
+ # refs https://github.com/awalsh128/cache-apt-pkgs-action/issues/157
40
+ run: |
41
+ sudo apt-get install -y aspell-en<% if (githubpublish || (language == 'de')) { %> aspell-de<% } %>
38
42
  - name: aspell
39
43
  run: |
40
44
  for tex in $(ls *.tex content/*.tex 2>/dev/null); do
45
+ if [[ "<%= language %>" == "de" && "$tex" == thesis-example* ]]; then
46
+ continue
47
+ fi
48
+
41
49
  # The lualatex package "spelling" requires the content to be in a file ending with ".spell.bad"
42
- aspell --mode=tex <% if (language == 'de') { %>-l de_DE --run-together<% } else { %>-l en_US<% } %> --encoding=utf-8 --conf=./.aspell.conf -p ./.aspell.en.pws list < $tex | sort | uniq >> <%= filenames.main %>.spell.bad
50
+ aspell --mode=tex\
51
+ <% if (language == 'de') { %>-l de_DE --run-together<% } else { %>-l en_US<% } %>\
52
+ --encoding=utf-8\
53
+ --conf=./.aspell.conf\
54
+ -p ./.aspell.<%= language %>.pws list\
55
+ < $tex | sort | uniq >> <%= filenames.main %>.spell.bad
43
56
  done
44
57
  - run: latexmk <%= filenames.main %>
45
58
 
46
59
  - name: Job summary using texlogsieve
47
60
  run: |
48
61
  echo '```' >> $GITHUB_STEP_SUMMARY
49
- texlogsieve < <%= filenames.main %>.log >> $GITHUB_STEP_SUMMARY || true
62
+ texlogsieve <%= filenames.main %>.log | tee -a "$GITHUB_STEP_SUMMARY" || true
50
63
  echo '```' >> $GITHUB_STEP_SUMMARY
51
64
  <% } -%>
52
65
  - uses: actions/upload-artifact@v4
@@ -55,15 +68,17 @@ jobs:
55
68
  path: |
56
69
  <%= filenames.main %>.pdf
57
70
  <%= filenames.main %>.log
71
+ <%= filenames.main %>.fls
58
72
  word-count:
59
73
  runs-on: ubuntu-latest
60
74
  steps:
61
75
  - name: Set up Git repository
62
76
  uses: actions/checkout@v4
63
77
  - name: Install TeX Live
64
- uses: zauguin/install-texlive@v3
78
+ uses: zauguin/install-texlive@v4
65
79
  with:
66
80
  package_file: '${{ github.workspace }}/Texlivefile'
81
+ texlive_version: <%= texlive %>
67
82
  - name: Count words
68
83
  run: |
69
84
  texcount -utf8 -inc <%= filenames.main %>.tex > texcount.txt
@@ -97,21 +112,29 @@ jobs:
97
112
 
98
113
  # Original action does not work well - see https://github.com/awalsh128/cache-apt-pkgs-action/pull/136
99
114
  # The action is not updated - and thus the dictionaries are not updated
100
- - uses: bscott-zebra/cache-apt-pkgs-action@avoid_using_xargs
115
+ - uses: awalsh128/cache-apt-pkgs-action@latest
101
116
  with:
102
- packages: aspell aspell-en<% if (language == 'de') { %> aspell-de<% } %>
117
+ packages: aspell aspell-en<% if (githubpublish || (language == 'de')) { %> aspell-de<% } %>
103
118
  version: 1.0
104
119
  execute_install_scripts: true
105
-
120
+ - name: post-setup aspell
121
+ # refs https://github.com/awalsh128/cache-apt-pkgs-action/issues/157
122
+ run: |
123
+ sudo apt-get install -y aspell-en<% if (githubpublish || (language == 'de')) { %> aspell-de<% } %>
106
124
  - name: aspell
107
125
  run: |
108
126
  echo "| file | status |" >> $GITHUB_STEP_SUMMARY
109
127
  echo "| -- | -- |" >> $GITHUB_STEP_SUMMARY
110
128
  failure=0
111
129
  for tex in $(ls *.tex content/*.tex 2>/dev/null); do
112
- # One could add a personal dictionary using --personal=.aspell.en.pws
130
+ if [[ "<%= language %>" == "de" && "$tex" == thesis-example* ]]; then
131
+ echo "$tex skipped"
132
+ continue
133
+ fi
134
+ echo "Checking $tex..."
135
+
113
136
  # Words are output in the order they appear in the document
114
- words=$(aspell --mode=tex <% if (language == 'de') { %>-l de_DE --run-together<% } else { %>-l en_US<% } %> --encoding=utf-8 --conf=./.aspell.conf -p ./.aspell.en.pws list < $tex | tr '\n' ' ')
137
+ words=$(aspell --mode=tex <% if (language == 'de') { %>-l de_DE --run-together<% } else { %>-l en_US<% } %> --encoding=utf-8 --conf=./.aspell.conf -p ./.aspell.<%= language %>.pws list < $tex | tr '\n' ' ')
115
138
  if [ -z "$words" ]; then
116
139
  echo "| $tex | ✅ |" >> $GITHUB_STEP_SUMMARY
117
140
  else
@@ -123,7 +146,7 @@ jobs:
123
146
  done
124
147
  if [[ "$failure" -eq 1 ]]; then
125
148
  echo "" >> $GITHUB_STEP_SUMMARY
126
- echo "If you want to ignore words, add them to `.aspell.en.pws` (your personal aspell dictionary)"
149
+ echo 'If you want to ignore words, add them to `.aspell.<%= language %>.pws` (your personal aspell dictionary)' >> $GITHUB_STEP_SUMMARY
127
150
  exit 1
128
151
  fi
129
152
  indent:
@@ -131,15 +154,16 @@ jobs:
131
154
  steps:
132
155
  - name: Set up Git repository
133
156
  uses: actions/checkout@v4
134
- - uses: bscott-zebra/cache-apt-pkgs-action@avoid_using_xargs
157
+ - uses: awalsh128/cache-apt-pkgs-action@latest
135
158
  with:
136
159
  packages: libyaml-tiny-perl libfile-homedir-perl
137
160
  version: 1.0
138
161
  execute_install_scripts: true
139
162
  - name: Install latexindent
140
- uses: zauguin/install-texlive@v3
163
+ uses: zauguin/install-texlive@v4
141
164
  with:
142
165
  packages: latexindent
166
+ texlive_version: <%= texlive %>
143
167
  - run: make format
144
168
  - name: No changes made by latexindent
145
169
  run: git diff --exit-code
@@ -1,5 +1,6 @@
1
1
  FROM registry.gitlab.com/islandoftex/images/texlive:<% switch (texlive) {
2
- case 2024: %>latest<% break;
2
+ case 2025: %>latest<% break;
3
+ case 2024: %>TL2024-historic<% break;
3
4
  case 2023: %>TL2023-historic<% break;
4
5
  } -%>
5
6
 
@@ -1,10 +1,11 @@
1
1
  FROM reitzig/texlive-<% switch (latexcompiler) {
2
2
  case "pdflatex": %>base<% break;
3
- case "lualatex": case "both": %>base-luatex<% break;
3
+ case "lualatex": case "lualatex-dev": case "both": %>base-luatex<% break;
4
4
  default: %>base<% break;
5
5
  } -%>:<% switch (texlive) {
6
- case 2024: %>2024.11<% break;
7
- case 2023: %>2023.1<% break;
6
+ case 2025: %>2025.2<% break;
7
+ case 2024: %>2024.13<% break;
8
+ case 2023: %>2023.3<% break;
8
9
  case 2022: %>2022.8<% break;
9
10
  case 2021: %>2021.9<% break;
10
11
  } -%>
@@ -23,7 +24,7 @@ RUN xargs tlmgr install --repository https://mirror.typesetting.eu < "/work/src/
23
24
  <% } -%>
24
25
  sha256sum "/work/src/Texlivefile" > "/work/tmp/Texlivefile.sha" &&\
25
26
  # make <% if (bibtextool == "biblatex") { %>biber, <% } %>latexmk and texlogsieve available
26
- tlmgr path add<% if ((latexcompiler === "lualatex") || (latexcompiler === "both")) { %> &&\
27
+ tlmgr path add<% if ((reallatexcompiler.startsWith("lualatex")) || (latexcompiler === "both")) { %> &&\
27
28
  # update font index
28
29
  luaotfload-tool --update<% } %>
29
30
  # use latest texlogsieve
@@ -89,7 +89,6 @@ edit:
89
89
  aspell:
90
90
  for tex in $(TEX_FILES);
91
91
  do
92
- # One could add a personal dictionary using --personal=.aspell.en.pws
93
92
  aspell --mode=tex <% if (language == 'de') { %>-l de_DE --run-together<% } else { %>-l en_US<% } %> --encoding=utf-8 --conf=./.aspell.conf -p ./.aspell.en.pws -c $$tex;
94
93
  done
95
94
 
@@ -1,7 +1,7 @@
1
1
  <% if (githubpublish) {
2
2
  switch (documentclass) {
3
3
  case "lncs": -%>
4
- # Simplified LNCS Template
4
+ # Enhanced LNCS Template
5
5
 
6
6
  > Quick start for modern LaTeXing with [LNCS](http://www.springer.com/computer/lncs).
7
7
  <% if (texlive > 2024) { -%>
@@ -10,7 +10,7 @@ Please be aware that this template is optimized for overleaf, which is based on
10
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
11
  <% } -%>
12
12
  <% break; case "ieee": -%>
13
- # Simplified IEEE Template
13
+ # Enhanced IEEE Template
14
14
 
15
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).
16
16
 
@@ -25,7 +25,7 @@ This template does it.
25
25
 
26
26
  This template is for the conferences.
27
27
  It is based on the `bare_conf_compsoc.tex` distributed by IEEE.
28
- In case you need other configurations, please adapt `paper-conference.tex` or run the [latex template generator].
28
+ In case you need other configurations, please adapt `paper.tex` or run the [latex template generator].
29
29
  <% break; case "acmart": -%>
30
30
  # ACM
31
31
 
@@ -41,7 +41,7 @@ However, de-facto configurations (hyperref) and modern features of latex (microt
41
41
  This template does it.
42
42
 
43
43
  This template is for the conferences.
44
- In case you need other configurations, please adapt `paper-conference.tex` or run the [latex template generator].
44
+ In case you need other configurations, please adapt `paper.tex` or run the [latex template generator].
45
45
  <% break; case "ustutt": -%>
46
46
  # University of Stuttgart PhD Thesis Template
47
47
 
@@ -95,7 +95,7 @@ See [overleaf](overleaf/).
95
95
  ## Usage
96
96
 
97
97
  - `<%= filenames.main %>.tex` is the main document
98
- - Use "<%= reallatexcompiler %> + <%= bibtextool %>" in your TeX editor or `latexmk <%= filenames.main %>` / `make` in the command line
98
+ - Use "<%= reallatexcompiler %> + <%= bibtextool %>" in your TeX editor or `latexmk <%= filenames.main %>` / `make` in the command line
99
99
 
100
100
  ### Using `latexmk`
101
101
 
@@ -190,7 +190,7 @@ Following features are enabled in this template:
190
190
  - Generated PDF allows for copy and paste of text without getting words with [ligatures](https://en.wikipedia.org/wiki/Typographic_ligature) such as "workflow" destroyed.
191
191
  This is enabled by `glyphtounicode`, which encodes ligatures (such as fl) using unicode characters.
192
192
  <% } -%>
193
- <% if (reallatexcompiler == "lualatex" || githubpublish) { -%>
193
+ <% if ((reallatexcompiler.startsWith("lualatex")) || githubpublish) { -%>
194
194
  - Ligatures are removed if they are typeset at the wrong place.
195
195
  This is enabled by the [selnolig](https://tex.meta.stackexchange.com/questions/2884/new-package-selnolig-that-automates-suppression-of-typographic-ligatures) package.
196
196
  <% } -%>
@@ -202,7 +202,7 @@ Following features are enabled in this template:
202
202
  <% } -%>
203
203
  - [microtypographic extensions](https://www.ctan.org/pkg/microtype) for a better look of the paper.
204
204
  - Modern packages such as [microtype], [cleveref]<% if (enquotes == "csquotes" || githubpublish) { %>, [csquotes]<% } %><% if (documentclass != 'lncs') { %>, [paralist]<% } %>, [hyperref], [hypcap], [upquote]<% if (documentclass == 'lncs') { %>, [natbib]<% } %>, [booktabs].
205
- <% if (latexcompiler == "lualatex" || githubpublish) { -%>
205
+ <% if ((reallatexcompiler.startsWith("lualatex")) || githubpublish) { -%>
206
206
  - <% if (githubpublish && !isThesis) { -%>(Optional) <% } %>LaTeX compilation using the modern [lualatex] compiler.
207
207
  For older systems, [pdflatex](https://en.wikipedia.org/wiki/PdfTeX) is still supported.
208
208
  <% } -%>
@@ -243,7 +243,7 @@ You can <% if (!githubpublish) { %>re<% } %>run the [latex template generator] t
243
243
  <% if (enquotes == "plainlatex") { -%>
244
244
  - Modern packages such as <% if (enquotes == "plainlatex") { missingFeatures = true; %>[csquotes]<% } %>.
245
245
  <% } -%>
246
- <% if (latexcompiler != "lualatex") { -%>
246
+ <% if (!reallatexcompiler.startsWith("lualatex")) { -%>
247
247
  - LaTeX compilation using the modern [lualatex] compiler.
248
248
  <% } -%>
249
249
  <% } -%>
@@ -266,10 +266,10 @@ A first step towards that is done at the [biblatex-ieee package](https://ctan.or
266
266
  case "lncs": -%>
267
267
  ## Examples
268
268
 
269
- - [paper.pdf](https://latextemplates.github.io/LNCS/paper.pdf) - normal paper.
270
- - [paper-minted.pdf](https://latextemplates.github.io/LNCS/paper-minted.pdf) - paper showing minted in action.
271
- - [paper-newtx.pdf](http://latextemplates.github.io/LNCS/paper-newtx.pdf) - paper typeset in Times Roman to save some space.
272
- - [paper-minted-newtx.pdf](http://latextemplates.github.io/LNCS/paper-minted-newtx.pdf) - paper typeset in Times Roman to save some space.
269
+ - [paper.pdf](https://latextemplates.github.io/lncs-enhanced/paper.pdf) - normal paper.
270
+ - [paper-minted.pdf](https://latextemplates.github.io/lncs-enhanced/paper-minted.pdf) - paper showing minted in action.
271
+ - [paper-newtx.pdf](http://latextemplates.github.io/lncs-enhanced/paper-newtx.pdf) - paper typeset in Times Roman to save some space.
272
+ - [paper-minted-newtx.pdf](http://latextemplates.github.io/lncs-enhanced/paper-minted-newtx.pdf) - paper typeset in Times Roman to save some space.
273
273
 
274
274
  ## Background
275
275
 
@@ -277,7 +277,7 @@ The official template is available at <https://www.springer.com/gp/computer-scie
277
277
 
278
278
  ## Quick start
279
279
 
280
- - Click on `Download ZIP` or [here](https://github.com/latextemplates/LNCS/archive/main.zip).
280
+ - Click on `Download ZIP` or [here](https://github.com/latextemplates/lncs-enhanced/archive/main.zip).
281
281
  - Extract `LNCS-main.zip` in the folder where you want to write your paper.
282
282
  - Edit [paper.tex](paper.tex).
283
283
  - `latexmk paper`.
@@ -292,15 +292,15 @@ In case you think, a package needs to be altered or added, feel free to open an
292
292
  <% break; case "ieee": -%>
293
293
  ## Examples
294
294
 
295
- - [paper-conference.pdf](https://latextemplates.github.io/IEEE/paper-conference.pdf) - regular conference paper.
296
- - [paper-conference-minted.pdf](https://latextemplates.github.io/IEEE/paper-conference-minted.pdf) - conference paper showing minted in action.
295
+ - [paper.pdf](https://latextemplates.github.io/ieee-enhanced/paper.pdf) - regular conference paper.
296
+ - [paper-minted.pdf](https://latextemplates.github.io/ieee-enhanced/paper-minted.pdf) - conference paper showing minted in action.
297
297
 
298
298
  ## Quick start
299
299
 
300
300
  - Click on `Download ZIP` or [here](https://github.com/latextemplates/IEEE/archive/main.zip).
301
301
  - Extract `main.zip` in the folder where you want to write your paper.
302
- - Edit [paper-conference.tex](paper-conference.tex).
303
- - `latexmk paper-conference`.
302
+ - Edit [paper.tex](paper.tex).
303
+ - `latexmk paper`.
304
304
 
305
305
  ## Attention regarding `compsocconf`
306
306
 
@@ -328,10 +328,6 @@ LaTeX Warning: Unused global option(s):
328
328
 
329
329
  ## `compsoc` option is not needed any more
330
330
 
331
- When using the 2007 version or the most recent version with (the unhandled) `compsocconf`, you'll get [paper-conference.pdf](https://latextemplates.github.io/IEEE/paper-conference.pdf) instead of `paper-conference-compsoc.pdf`.
332
- That differs significantly in the style used for section headings.
333
- `paper-conference-compsoc.pdf` was removed from the build since August 2021, because `compsoc` option was not used by computer science conferences in 2021.
334
-
335
331
  IEEE distributes their templates at <https://www.ieee.org/conferences_events/conferences/publishing/templates.html>.
336
332
  With the update of July 2017, the archive <https://www.ieee.org/documents/ieee-latex-conference-template.zip> contains both `bare_conf.tex` and `bare_conf_compsoc.tex`.
337
333
  Thus, the conference should state which option to use.
@@ -35,7 +35,7 @@ bookcover<%# required for cover.tex%>
35
35
  <% } -%>
36
36
  booktabs
37
37
  caption
38
- <% if (githubpublish || (reallatexcompiler == "lualatex") && ((font == "arial") || (documentclass == "ustutt"))) { -%>
38
+ <% if (githubpublish || isThesis) { -%>
39
39
  catchfile
40
40
  <% } -%>
41
41
  cfr-lm
@@ -92,7 +92,7 @@ floatflt<%# required by acmart and lncs %>
92
92
  fncychap
93
93
  <% } -%>
94
94
  fontaxes<%# required by at least acmart and scientific-thesis-template %>
95
- <% if (githubpublish || (reallatexcompiler == "lualatex")) { -%>
95
+ <% if (githubpublish || (reallatexcompiler.startsWith("lualatex"))) { -%>
96
96
  fontspec
97
97
  <% } -%>
98
98
  <% if (githubpublish || isThesis) { -%>
@@ -140,6 +140,10 @@ koma-script
140
140
  kvdefinekeys
141
141
  kvoptions
142
142
  kvsetkeys
143
+ <% if (latexcompiler.endsWith("-dev")) { -%>
144
+ latex-bin-dev
145
+ latex-bin-dev.x86_64-linux
146
+ <% } -%>
143
147
  letltxmacro
144
148
  <% if (githubpublish || (documentclass == "acmart")) { -%>
145
149
  libertine
@@ -155,12 +159,12 @@ ltxcmds
155
159
  <% if (githubpublish || isThesis) { -%>
156
160
  lscapeenhanced
157
161
  <% } -%>
158
- <% if (githubpublish || (reallatexcompiler == "lualatex")) { -%>
162
+ <% if (githubpublish || (reallatexcompiler.startsWith("lualatex"))) { -%>
159
163
  luacode
160
164
  lualatex-math
161
165
  luatex85
162
166
  luatexbase
163
- <% if (githubpublish || (lang == "en") && (reallatexcompiler == "lualatex")) { -%>
167
+ <% if (githubpublish || (lang == "en") && (reallatexcompiler.startsWith("lualatex"))) { -%>
164
168
  luaxml<%# required by spelling %>
165
169
  <% } -%>
166
170
  <% } -%>
@@ -190,7 +194,7 @@ natbib
190
194
  <% if (githubpublish || (documentclass == "acmart")) { -%>
191
195
  ncctools<%# provides manyfoot%>
192
196
  <% } -%>
193
- <% if (githubpublish || (reallatexcompiler == "lualatex")) { -%>
197
+ <% if (githubpublish || (reallatexcompiler.startsWith("lualatex"))) { -%>
194
198
  newcomputermodern
195
199
  <% } -%>
196
200
  <% if (githubpublish || (listings == 'minted')) { -%>
@@ -239,7 +243,7 @@ scientific-thesis-cover
239
243
  <% if (githubpublish || isThesis) { -%>
240
244
  scrhack
241
245
  <% } -%>
242
- <% if (githubpublish || (lang == "en") && (reallatexcompiler == "lualatex")) { -%>
246
+ <% if (githubpublish || (lang == "en") && (reallatexcompiler.startsWith("lualatex"))) { -%>
243
247
  selnolig
244
248
  <% } -%>
245
249
  <% if (githubpublish || (documentclass == "acmart") || isThesis) { -%>
@@ -255,7 +259,7 @@ siunitx
255
259
  snapshot
256
260
  soul
257
261
  soulpos
258
- <% if (githubpublish || (lang == "en") && (reallatexcompiler == "lualatex")) { -%>
262
+ <% if (githubpublish || (lang == "en") && (reallatexcompiler.startsWith("lualatex"))) { -%>
259
263
  spelling
260
264
  <% } -%>
261
265
  stringenc
@@ -0,0 +1,123 @@
1
+ personal_ws-1.1 en 122 utf-8
2
+ ACM
3
+ Atlantic
4
+ BPEL
5
+ BPMN
6
+ Bei
7
+ Cleveref
8
+ Das
9
+ Database
10
+ Diag
11
+ Firstname
12
+ Geänderter
13
+ Hier
14
+ IEEEtran
15
+ JSON
16
+ JabRef
17
+ Kommentar
18
+ LaTeX
19
+ LaTeXing
20
+ Lastname
21
+ Manuelle
22
+ Markierter
23
+ Markierung
24
+ North
25
+ OMG
26
+ ORCID
27
+ OldStyle
28
+ Organization
29
+ Practitioner
30
+ RDBMS
31
+ RGB
32
+ TODOs
33
+ Textfarbe
34
+ Treaty
35
+ UML
36
+ Worten
37
+ abbreviationdot
38
+ aboveskip
39
+ acmnumeric
40
+ angepasst
41
+ applica
42
+ args
43
+ auch
44
+ backticks
45
+ basewidth
46
+ basicstyle
47
+ bei
48
+ belowskip
49
+ breaklines
50
+ category
51
+ cls
52
+ commentstyle
53
+ cref
54
+ da
55
+ dante
56
+ dazu
57
+ der
58
+ dwarflike
59
+ eclipseKeywords
60
+ eclipseStrings
61
+ ein
62
+ einigen
63
+ enquote
64
+ error
65
+ escapeinside
66
+ ff
67
+ firstline
68
+ firstnumber
69
+ flXML
70
+ fontsize
71
+ fr
72
+ funktioniert
73
+ für
74
+ geändert
75
+ gp
76
+ html
77
+ hypertext
78
+ ist
79
+ itemizations
80
+ json
81
+ kräftig
82
+ language
83
+ lastline
84
+ lastname
85
+ letzten
86
+ linenos
87
+ longplural
88
+ lst
89
+ lstlisting
90
+ markup
91
+ microtype
92
+ mindflow
93
+ morecomment
94
+ nato
95
+ nd
96
+ nm
97
+ noch
98
+ numbersep
99
+ numberstyle
100
+ nur
101
+ oldstyle
102
+ paralist
103
+ powerset
104
+ produziert
105
+ pygments
106
+ rdbms
107
+ seit
108
+ shortplural
109
+ showstringspaces
110
+ siunitx
111
+ stepnumber
112
+ stringstyle
113
+ subcaption
114
+ subfig
115
+ subfigure
116
+ subfigures
117
+ tion
118
+ tt
119
+ werden
120
+ wird
121
+ wurde
122
+ xleftmargin
123
+ œ
@@ -1,100 +1,123 @@
1
- personal_ws-1.1 en 26
2
- TODOs
3
- LaTeX
4
- JabRef
1
+ personal_ws-1.1 en 122 utf-8
2
+ ACM
3
+ Atlantic
4
+ BPEL
5
+ BPMN
6
+ Bei
7
+ Cleveref
8
+ Das
9
+ Database
10
+ Diag
11
+ Firstname
12
+ Geänderter
13
+ Hier
14
+ IEEEtran
5
15
  JSON
16
+ JabRef
17
+ Kommentar
18
+ LaTeX
19
+ LaTeXing
20
+ Lastname
21
+ Manuelle
22
+ Markierter
23
+ Markierung
24
+ North
25
+ OMG
26
+ ORCID
27
+ OldStyle
28
+ Organization
29
+ Practitioner
30
+ RDBMS
31
+ RGB
32
+ TODOs
33
+ Textfarbe
34
+ Treaty
35
+ UML
36
+ Worten
37
+ abbreviationdot
38
+ aboveskip
39
+ acmnumeric
40
+ angepasst
41
+ applica
42
+ args
43
+ auch
6
44
  backticks
45
+ basewidth
46
+ basicstyle
47
+ bei
48
+ belowskip
7
49
  breaklines
8
- dwarflike
9
-
10
- OldStyle
11
- Cleveref
50
+ category
51
+ cls
52
+ commentstyle
12
53
  cref
54
+ da
55
+ dante
56
+ dazu
57
+ der
58
+ dwarflike
59
+ eclipseKeywords
60
+ eclipseStrings
61
+ ein
62
+ einigen
13
63
  enquote
64
+ error
65
+ escapeinside
66
+ ff
14
67
  firstline
15
68
  firstnumber
69
+ flXML
16
70
  fontsize
71
+ fr
72
+ funktioniert
73
+ für
74
+ geändert
75
+ gp
76
+ html
77
+ hypertext
78
+ ist
79
+ itemizations
80
+ json
81
+ kräftig
82
+ language
17
83
  lastline
84
+ lastname
85
+ letzten
18
86
  linenos
87
+ longplural
88
+ lst
89
+ lstlisting
90
+ markup
19
91
  microtype
20
92
  mindflow
93
+ morecomment
94
+ nato
95
+ nd
21
96
  nm
97
+ noch
22
98
  numbersep
99
+ numberstyle
100
+ nur
23
101
  oldstyle
24
102
  paralist
25
103
  powerset
104
+ produziert
26
105
  pygments
106
+ rdbms
107
+ seit
108
+ shortplural
109
+ showstringspaces
27
110
  siunitx
28
-
29
- tt
30
- eclipseStrings
31
- RGB
32
- eclipseKeywords
33
- RGB
34
- json
35
- basicstyle
36
- commentstyle
37
- stringstyle
38
- numberstyle
39
111
  stepnumber
40
- showstringspaces
41
- morecomment
42
- œ
43
- lstlisting
44
- lstlisting
45
- Firstname
46
- Lastname
47
- escapeinside
48
- basewidth
49
- aboveskip
50
- belowskip
51
- xleftmargin
52
- numberstyle
53
- Markierter
54
- Bei
112
+ stringstyle
113
+ subcaption
114
+ subfig
115
+ subfigure
116
+ subfigures
117
+ tion
118
+ tt
119
+ werden
55
120
  wird
56
- nur
57
- Textfarbe
58
- geändert
59
- da
60
- auch
61
- bei
62
- einigen
63
- Worten
64
- funktioniert
65
- Markierter
66
- Kommentar
67
- dazu
68
- Manuelle
69
- Markierung
70
- für
71
- der
72
- seit
73
- der
74
- letzten
75
- geändert
76
121
  wurde
77
- Das
78
- ist
79
- ein
80
- angepasst
81
- Geänderter
82
- Hier
83
- nur
84
- ein
85
- Kommentar
86
- Hier
87
- noch
88
- kräftig
89
- produziert
90
- werden
91
- applica
92
- tion
93
- applica
94
- tion
95
- Diag
96
- lst
97
- flXML
98
- json
99
- args
100
- nd
122
+ xleftmargin
123
+ œ
@@ -2,6 +2,12 @@
2
2
  <%= filenames.main %>-*.pdf
3
3
  figures/*.pdf_tex
4
4
 
5
+ # glossaries
6
+ *.glo-abr
7
+
8
+ # glossaries-extra
9
+ *.ist
10
+
5
11
  # spelling
6
12
  *.spell.bad
7
13
  *.spell.txt
@@ -42,7 +42,7 @@
42
42
  \makeatother
43
43
 
44
44
  <% } -%>
45
- <% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { indent = '' -%>
45
+ <% if ((reallatexcompiler.startsWith("lualatex")) || (latexcompiler == "both")) { indent = '' -%>
46
46
  <% if (latexcompiler == "both") { indent = ' ' -%>
47
47
  \ifluatex
48
48
  <% } -%>
@@ -158,8 +158,9 @@ lualatex
158
158
  <%= indent %>% For more information see https://ctan.org/pkg/selnolig
159
159
  <%= indent %>% language "english" or "ngerman" is passed to selnolig by the document class
160
160
  <%= indent %>\usepackage{selnolig}
161
+
161
162
  <% } -%>
162
- <% if ((latexcompiler != "lualatex") || (latexcompiler == "both")) { -%>
163
+ <% if ((!reallatexcompiler.startsWith("lualatex")) || (latexcompiler == "both")) { -%>
163
164
  <% if (latexcompiler == "both") { -%>
164
165
  \else
165
166
  <% } -%>
@@ -215,8 +216,8 @@ In addition, we make the code appear more nice -%>
215
216
  \fi
216
217
  <% } -%>
217
218
  <% } -%>
218
- <% if (isThesis) { -%>
219
219
 
220
+ <% if (isThesis) { -%>
220
221
  % DE: Noch mehr Symbole
221
222
  %\usepackage{stmaryrd} %fuer \ovee, \owedge, \otimes
222
223
  %\usepackage{marvosym} %fuer \Writinghand %patched to not redefine \Rightarrow
@@ -280,10 +281,9 @@ In addition, we make the code appear more nice -%>
280
281
  %\usepackage{marvosym} %fuer \Writinghand %patched to not redefine \Rightarrow
281
282
  %\usepackage{mathrsfs} %mittels \mathscr{} schoenen geschwungenen Buchstaben erzeugen
282
283
  %\usepackage{calrsfs} %\mathcal{} ein bisserl dickeren buchstaben erzeugen - sieht net so gut aus.
284
+
283
285
  <% } -%>
284
286
  <% if (documentclass == 'scientific-thesis') { -%>
285
-
286
- \usepackage[automark]{scrlayer-scrpage}
287
287
  \automark[section]{chapter}
288
288
  \setkomafont{pageheadfoot}{\normalfont\sffamily}
289
289
  \setkomafont{pagenumber}{\normalfont\sffamily}
@@ -294,9 +294,9 @@ In addition, we make the code appear more nice -%>
294
294
  \cfoot[]{}
295
295
  \ofoot[\usekomafont{pagenumber}\thepage]{\usekomafont{pagenumber}\thepage}
296
296
  \ifoot[]{}
297
+
297
298
  <% } -%>
298
299
  <% if (documentclass == 'ustutt') { -%>
299
-
300
300
  % Zusatzliche Symbole (Text Companion font extension)
301
301
  \usepackage{textcomp}
302
302
 
@@ -306,4 +306,5 @@ In addition, we make the code appear more nice -%>
306
306
  \setkomafont{pagenumber}{\small\sffamily\bfseries}
307
307
 
308
308
  \typearea[current]{last}
309
+
309
310
  <% } -%>
@@ -1,4 +1,4 @@
1
- $pdflatex = '<% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { %>lualatex <% } else {%>pdflatex <% } if (requiresShellEscape) { %>--shell-escape <% } %>--file-line-error --synctex=-1 %O %S';
1
+ $pdflatex = '<%= reallatexcompiler %> <% if (requiresShellEscape) { %>--shell-escape <% } %>--file-line-error --synctex=-1 %O %S';
2
2
 
3
3
  #Use SumatraPDF instead of the default PDF viewer
4
4
  $pdf_previewer = 'start "C:\Program Files\SumatraPDF\SumatraPDF.exe"';
@@ -84,12 +84,6 @@
84
84
  draft=false
85
85
  ]{scrbook}
86
86
  \usepackage{scrlayer-scrpage}
87
- \ihead[]{}
88
- \chead[]{}
89
- \ohead[]{\headmark}
90
- \cfoot[]{}
91
- \ofoot[\usekomafont{pagenumber}\thepage]{\usekomafont{pagenumber}\thepage}
92
- \ifoot[]{}
93
87
  <% break; case "ustutt": -%>
94
88
 
95
89
  \documentclass[
@@ -122,10 +116,12 @@
122
116
  <% if (latexcompiler == "both") { -%>
123
117
 
124
118
  \usepackage{iftex}
125
- <% if (isThesis) { -%>\usepackage{ifplatform}
126
119
  <% } -%>
120
+ <% if (isThesis) { -%>
127
121
 
122
+ \usepackage{ifplatform}
128
123
  <% } -%>
124
+
129
125
  % backticks (`) werden als solches in verbatim-Umgebungen dargestellt
130
126
  % Details unter:
131
127
  % - https://tex.stackexchange.com/a/341057/9075
@@ -142,7 +138,6 @@
142
138
 
143
139
  <% } -%>
144
140
  <%- include('font.preamble.en.tex', this); -%>
145
-
146
141
  <%- include('microtype.preamble.de.tex', this); -%>
147
142
 
148
143
  <% if (documentclass == 'ustutt') { -%>
@@ -162,7 +157,7 @@
162
157
  <% } -%>
163
158
  <%- include('diagbox.preamble.en.tex', this); -%>
164
159
 
165
- <% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { indent = '' -%>
160
+ <% if ((reallatexcompiler.startsWith("lualatex")) || (latexcompiler == "both")) { indent = '' -%>
166
161
  <% if (latexcompiler == "both") { indent = ' ' -%>
167
162
  \ifluatex
168
163
  <% } -%>
@@ -283,7 +278,7 @@
283
278
  \newcommand{\hydash}{\penalty\@M-\hskip\z@skip}
284
279
  % Definition of "= taken from http://mirror.ctan.org/macros/latex/contrib/babel-contrib/german/ngermanb.dtx
285
280
  \makeatother
286
- <% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { indent = '' -%>
281
+ <% if ((reallatexcompiler.startsWith("lualatex")) || (latexcompiler == "both")) { indent = '' -%>
287
282
 
288
283
  <% if (latexcompiler == "both") { indent = ' ' -%>
289
284
  \ifluatex
@@ -365,7 +360,7 @@
365
360
  \setstretch{1.2}
366
361
  \raggedbottom % Variable Seitenhoehen zulassen
367
362
  <% } -%>
368
- <% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { indent = '' -%>
363
+ <% if ((reallatexcompiler.startsWith("lualatex")) || (latexcompiler == "both")) { indent = '' -%>
369
364
  <% if (latexcompiler == "both") { indent = ' ' -%>
370
365
  \ifluatex
371
366
  <% } -%>
@@ -50,7 +50,6 @@
50
50
  <% break; case "ieee": -%>
51
51
 
52
52
  % DO NOT DOWNLOAD IEEEtran.cls - Use the one of your LaTeX distribution
53
- % For the final version, replace "draftcls" by "final"
54
53
  \documentclass[<%= ieeevariant %>,<%= papersize %>paper,english]{IEEEtran}[2015/08/26]
55
54
 
56
55
  % Balance the last page using the balance package (see https://ctan.org/pkg/balance)
@@ -76,6 +75,7 @@
76
75
  % draft % um zu sehen, wo noch nachgebessert werden muss - wichtig, da Bindungskorrektur mit drin
77
76
  draft=false
78
77
  ]{scrbook}
78
+ \usepackage{scrlayer-scrpage}
79
79
  <% break; case "ustutt": -%>
80
80
 
81
81
  \documentclass[
@@ -108,10 +108,12 @@
108
108
  <% if (latexcompiler == "both") { -%>
109
109
 
110
110
  \usepackage{iftex}
111
- <% if (isThesis) { -%>\usepackage{ifplatform}
112
111
  <% } -%>
112
+ <% if (isThesis) { -%>
113
113
 
114
+ \usepackage{ifplatform}
114
115
  <% } -%>
116
+
115
117
  % backticks (`) are rendered as such in verbatim environments.
116
118
  % See following links for details:
117
119
  % - https://tex.stackexchange.com/a/341057/9075
@@ -128,7 +130,6 @@
128
130
 
129
131
  <% } -%>
130
132
  <%- include('font.preamble.en.tex', this); -%>
131
-
132
133
  <%- include('microtype.preamble.en.tex', this); -%>
133
134
 
134
135
  <% if (documentclass == 'ustutt') { -%>
@@ -148,7 +149,7 @@
148
149
  <% } -%>
149
150
  <%- include('diagbox.preamble.en.tex', this); -%>
150
151
 
151
- <% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { indent = '' -%>
152
+ <% if ((reallatexcompiler.startsWith("lualatex")) || (latexcompiler == "both")) { indent = '' -%>
152
153
  <% if (latexcompiler == "both") { indent = ' ' -%>
153
154
  \ifluatex
154
155
  <% } -%>
@@ -277,18 +278,6 @@
277
278
  % See https://ctan.org/pkg/hyphenex and https://tex.stackexchange.com/a/22892/9075 for details
278
279
  \input{ushyphex}
279
280
 
280
- <% if ((latexcompiler == "lualatex") || (latexcompiler == "both")) { indent = '' -%>
281
- <% if (latexcompiler == "both") { indent = ' ' -%>
282
- \ifluatex
283
- <% } -%>
284
- <%= indent %>% Enable correct rendering of ligatures - provided by https://ctan.org/pkg/selnolig
285
- <%= indent %>% See ADR-0009 for alternatives
286
- <%= indent %>\usepackage{selnolig}
287
- <% if (latexcompiler == "both") { -%>
288
- \fi
289
- <% } -%>
290
-
291
- <% } -%>
292
281
  % correct bad hyphenation here
293
282
  \hyphenation{
294
283
  op-tical net-works semi-conduc-tor
@@ -10,7 +10,7 @@ Bei \verb1\textmarker1 wird nur die Textfarbe geändert, da dies auch bei einige
10
10
  \textcomment{Markierter Text.}{Kommentar dazu.}
11
11
  <%- eexample %>
12
12
 
13
- <% if (isThesis && (todo == "pdfcomment") && (latexcompiler == "lualatex")) { -%>
13
+ <% if (isThesis && (todo == "pdfcomment") && (reallatexcompiler.startsWith("lualatex"))) { -%>
14
14
  <%- bexample %>
15
15
  \hl{In Gelb hervorgehoben.}
16
16
  Provided indirectly by pdfcomment.sty (soulpos).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "generator-latex-template",
3
- "version": "2025.2.14",
3
+ "version": "2025.4.11",
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": {
@@ -38,7 +38,7 @@
38
38
  "minimist": "^1.2.8",
39
39
  "patch-package": "^8.0.0",
40
40
  "yeoman-environment": "^4.0.0",
41
- "yeoman-generator": "~7.4.0",
41
+ "yeoman-generator": "~7.5.0",
42
42
  "yeoman-option-or-prompt": "^2.0.1",
43
43
  "yosay": "^3.0.0"
44
44
  },