generator-latex-template 0.7.0 → 0.8.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 +19 -17
- package/generators/app/index.js +222 -568
- package/generators/app/options.js +375 -0
- package/generators/app/templates/Dockerfile.dante +3 -1
- package/generators/app/templates/Dockerfile.iot +14 -0
- package/generators/app/templates/Dockerfile.reitzig +12 -11
- package/generators/app/templates/README.en.md +4 -10
- package/generators/app/templates/Texlivefile +28 -3
- package/generators/app/templates/babel.preamble.de.tex +3 -1
- package/generators/app/templates/babel.preamble.en.tex +1 -1
- package/generators/app/templates/csquotes.example.de.tex +1 -1
- package/generators/app/templates/csquotes.example.en.tex +1 -1
- package/generators/app/templates/csquotes.preamble.en.tex +1 -1
- package/generators/app/templates/figure.example.de.tex +18 -0
- package/generators/app/templates/hyphenation.example.en.tex +1 -1
- package/generators/app/templates/latexmkrc +1 -3
- package/generators/app/templates/main.de.tex +581 -139
- package/generators/app/templates/main.en.tex +11 -17
- package/generators/app/templates/microtype.preamble.de.tex +5 -0
- package/generators/app/templates/natbib.preamble.en.tex +1 -1
- package/generators/app/templates/siunitx.example.en.tex +1 -1
- package/generators/app/templates/siunitx.preamble.de.tex +2 -0
- package/generators/app/templates/siunitx.preamble.en.tex +0 -1
- package/generators/app/templates/subfig.preamble.en.tex +1 -1
- package/generators/app/templates/url.preamble.de.tex +2 -0
- package/package.json +15 -16
- package/generators/app/templates/refcheck.example.en.tex +0 -36
- package/generators/app/templates/refcheck.preamble.en.tex +0 -4
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
export const options = [
|
|
2
|
+
{
|
|
3
|
+
type: "list",
|
|
4
|
+
name: "documentclass",
|
|
5
|
+
message: "Which template should be generated?",
|
|
6
|
+
choices: [
|
|
7
|
+
{
|
|
8
|
+
name: "Scientic Thesis",
|
|
9
|
+
value: "scientific-thesis",
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: "Association for Computing Machinery (ACM)",
|
|
13
|
+
value: "acmart",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "Institute of Electrical and Electronics Engineers (IEEE)",
|
|
17
|
+
value: "ieee",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: "Springer's Lecture Notes in Computer Science (LNCS)",
|
|
21
|
+
value: "lncs",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
default: "scientific-thesis",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: "list",
|
|
28
|
+
name: "acmformat",
|
|
29
|
+
when(response) {
|
|
30
|
+
return response.documentclass === "acmart";
|
|
31
|
+
},
|
|
32
|
+
message: "Which format of ACM?",
|
|
33
|
+
choices: [
|
|
34
|
+
{
|
|
35
|
+
value: "manuscript",
|
|
36
|
+
name: "A manuscript. This is the default.",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
value: "acmsmall",
|
|
40
|
+
name: "Small single-column format. Used for CIE, CSUR, JACM, JDIQ, JEA, JERIC, JETC, PACMCGIT, PACMHCI, PACMPL, TAAS, TACCESS, TACO, TALG, TALLIP (formerly TALIP), TCPS, TDS, TEAC, TECS, TELO, THRI, TIIS, TIOT, TISSEC, TIST, TKDD, TMIS, TOCE, TOCHI, TOCL, TOCS, TOCT, TODAES, TODS, TOIS, TOIT, TOMACS, TOMM (formerly TOMCCAP), TOMPECS, TOMS, TOPC, TOPLAS, TOPS, TOS, TOSEM, TOSN, TQC, TRETS, TSAS, TSC, TSLP and TWEB, including special issues.",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
value: "acmlarge",
|
|
44
|
+
name: "Large single-column format. Used for DTRAP, HEALTH, IMWUT, JOCCH, POMACS and TAP, including special issues.",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
value: "acmtog",
|
|
48
|
+
name: "Large double-column format. Used for TOG, including annual conference Technical Papers.",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
value: "sigconf",
|
|
52
|
+
name: "Proceedings format for most ACM conferences (with the exceptionslisted below) and all ICPS volumes.",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
value: "sigplan",
|
|
56
|
+
name: "Proceedings format for SIGPLAN conferences",
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
default: "sigconf",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: "confirm",
|
|
63
|
+
name: "acmreview",
|
|
64
|
+
when(response) {
|
|
65
|
+
return response.documentclass === "acmart";
|
|
66
|
+
},
|
|
67
|
+
message: "Format as document to review?",
|
|
68
|
+
default: true,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: "list",
|
|
72
|
+
name: "ieeevariant",
|
|
73
|
+
when(response) {
|
|
74
|
+
return response.documentclass === "ieee";
|
|
75
|
+
},
|
|
76
|
+
message: "Which variant of IEEE paper?",
|
|
77
|
+
choices: [
|
|
78
|
+
{
|
|
79
|
+
name: "conference paper",
|
|
80
|
+
value: "conference",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "journal paper",
|
|
84
|
+
value: "journal",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'peerreview paper - similar to journal paper, but additional cover page and on first "real" paper page title without authors',
|
|
88
|
+
value: "peerreview",
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
default: "conference",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: "list",
|
|
95
|
+
name: "papersize",
|
|
96
|
+
message: "Which paper size to use?",
|
|
97
|
+
choices: [
|
|
98
|
+
{
|
|
99
|
+
name: "A4",
|
|
100
|
+
value: "a4",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "US letter",
|
|
104
|
+
value: "letter",
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
default: "a4",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: "list",
|
|
111
|
+
name: "overleaf",
|
|
112
|
+
message: "Overleaf compatibility?",
|
|
113
|
+
choices: [
|
|
114
|
+
{
|
|
115
|
+
name: "yes",
|
|
116
|
+
value: true,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "no",
|
|
120
|
+
value: false,
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
default: true,
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: "list",
|
|
127
|
+
name: "texlive",
|
|
128
|
+
message: "Which TeXLive compatibility?",
|
|
129
|
+
choices: function (state) {
|
|
130
|
+
let res = [
|
|
131
|
+
{
|
|
132
|
+
name: "TeXLive 2021",
|
|
133
|
+
value: 2021,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: "TeXLive 2022",
|
|
137
|
+
value: 2022,
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
if (!state.overleaf) {
|
|
141
|
+
res.push({
|
|
142
|
+
name: "TeXLive 2023",
|
|
143
|
+
value: 2023,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return res;
|
|
147
|
+
},
|
|
148
|
+
default(state) {
|
|
149
|
+
if (state.overleaf) {
|
|
150
|
+
return 2022;
|
|
151
|
+
} else {
|
|
152
|
+
return 2023;
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: "list",
|
|
158
|
+
name: "latexcompiler",
|
|
159
|
+
message: "Which latex compiler should be used?",
|
|
160
|
+
choices: ["pdflatex", "lualatex"],
|
|
161
|
+
default: "pdflatex",
|
|
162
|
+
when(response) {
|
|
163
|
+
return !(response.documentclass === "ieee");
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
when(response) {
|
|
168
|
+
return (
|
|
169
|
+
response.documentclass !== "acmart" && response.documentclass !== "ieee"
|
|
170
|
+
);
|
|
171
|
+
},
|
|
172
|
+
type: "list",
|
|
173
|
+
name: "bibtextool",
|
|
174
|
+
message: "Which BibTeX tool should be used?",
|
|
175
|
+
choices: [
|
|
176
|
+
{
|
|
177
|
+
name: "BibTeX",
|
|
178
|
+
value: "bibtex",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: "BibLaTeX + biber",
|
|
182
|
+
value: "biblatex",
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
default(response) {
|
|
186
|
+
switch (response.documentclass) {
|
|
187
|
+
case "acmart":
|
|
188
|
+
case "ieee":
|
|
189
|
+
case "lncs":
|
|
190
|
+
return "bibtex";
|
|
191
|
+
default:
|
|
192
|
+
return "biblatex";
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
type: "list",
|
|
198
|
+
name: "docker",
|
|
199
|
+
message: "Should a Dockerfile be generated?",
|
|
200
|
+
choices: [
|
|
201
|
+
{
|
|
202
|
+
name: "no",
|
|
203
|
+
value: false,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: "yes (Island of TeX)",
|
|
207
|
+
value: "iot",
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: "yes (Reiztig)",
|
|
211
|
+
value: "reitzig",
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
name: "yes (DANTE e.V.)",
|
|
215
|
+
value: "dante",
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
default: false,
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
type: "list",
|
|
222
|
+
name: "lang",
|
|
223
|
+
message: "Which language should the document be?",
|
|
224
|
+
choices: [
|
|
225
|
+
{
|
|
226
|
+
name: "English",
|
|
227
|
+
value: "en",
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
name: "German",
|
|
231
|
+
value: "de",
|
|
232
|
+
},
|
|
233
|
+
],
|
|
234
|
+
default: "en",
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: "list",
|
|
238
|
+
name: "font",
|
|
239
|
+
message: "Which font should be used?",
|
|
240
|
+
choices: (state) => {
|
|
241
|
+
const res = [];
|
|
242
|
+
if (state.documentclass === "acmart") {
|
|
243
|
+
res.push({
|
|
244
|
+
name: "ACM Default",
|
|
245
|
+
value: "default",
|
|
246
|
+
});
|
|
247
|
+
} else if (state.documentclass === "ieee") {
|
|
248
|
+
res.push({
|
|
249
|
+
name: "IEEE Default",
|
|
250
|
+
value: "default",
|
|
251
|
+
});
|
|
252
|
+
} else {
|
|
253
|
+
res.push({
|
|
254
|
+
name: "Computer Modern (Default LaTeX font)",
|
|
255
|
+
value: "default",
|
|
256
|
+
});
|
|
257
|
+
if (state.documentclass === "scientific-thesis") {
|
|
258
|
+
res.push({
|
|
259
|
+
name: "Arial",
|
|
260
|
+
value: "arial",
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
res.push({
|
|
265
|
+
name: "Times New Roman",
|
|
266
|
+
value: "times",
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
return res;
|
|
271
|
+
},
|
|
272
|
+
default: "default",
|
|
273
|
+
when(response) {
|
|
274
|
+
return response.documentclass !== "ieee";
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
type: "list",
|
|
279
|
+
name: "listings",
|
|
280
|
+
message: "Which package to typeset listings?",
|
|
281
|
+
choices: [
|
|
282
|
+
{
|
|
283
|
+
name: "listings",
|
|
284
|
+
value: "listings",
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
name: "minted (requires a working Python installation)",
|
|
288
|
+
value: "minted",
|
|
289
|
+
},
|
|
290
|
+
],
|
|
291
|
+
default: "listings",
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
type: "list",
|
|
295
|
+
name: "enquotes",
|
|
296
|
+
message: 'Which package to use to "enquote" text?',
|
|
297
|
+
choices: (state) => {
|
|
298
|
+
const res = [];
|
|
299
|
+
res.push({
|
|
300
|
+
name: "csquotes (\\enquote{...} command)",
|
|
301
|
+
value: "csquotes",
|
|
302
|
+
});
|
|
303
|
+
if (state.language === "en") {
|
|
304
|
+
res.push({
|
|
305
|
+
name: "textcmds (\\qq{...} command)",
|
|
306
|
+
value: "textcmds",
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if (state.language === "de") {
|
|
311
|
+
res.push({
|
|
312
|
+
name: "Plain LaTeX (\\glqq{}text\\grqq{} - not recommended)",
|
|
313
|
+
value: "plainlatex",
|
|
314
|
+
});
|
|
315
|
+
} else {
|
|
316
|
+
res.push({
|
|
317
|
+
name: "Plain LaTeX (``text'' - not recommended)",
|
|
318
|
+
value: "plainlatex",
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
return res;
|
|
323
|
+
},
|
|
324
|
+
default: "csquotes",
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
type: "list",
|
|
328
|
+
name: "tweakouterquote",
|
|
329
|
+
message:
|
|
330
|
+
'Enable hyphenation tweak (e.g., application"=specific for app-lication-specific at a linebreak) or enable easy quotation (e.g., "application"; not common in default latex setups)?',
|
|
331
|
+
choices: [
|
|
332
|
+
{
|
|
333
|
+
name: "Hyphenation tweak",
|
|
334
|
+
value: "babel",
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
name: "Easy quotation",
|
|
338
|
+
value: "outerquote",
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
default: "babel",
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
type: "list",
|
|
345
|
+
name: "todo",
|
|
346
|
+
message: "Which package to mark TODOs?",
|
|
347
|
+
choices: [
|
|
348
|
+
{
|
|
349
|
+
name: "pdfcomment",
|
|
350
|
+
value: "pdfcomment",
|
|
351
|
+
} /*
|
|
352
|
+
{
|
|
353
|
+
name: "Plain LaTeX (simple \\commentontext and \\commentatside are defined)",
|
|
354
|
+
value: "plainlatex"
|
|
355
|
+
}, */,
|
|
356
|
+
{
|
|
357
|
+
name: "None (no support)",
|
|
358
|
+
value: "none",
|
|
359
|
+
},
|
|
360
|
+
],
|
|
361
|
+
default: "pdfcomment",
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
type: "confirm",
|
|
365
|
+
name: "howtotext",
|
|
366
|
+
message: "Include hints on text (e.g., how to write an abstract)?",
|
|
367
|
+
default: true,
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
type: "confirm",
|
|
371
|
+
name: "examples",
|
|
372
|
+
message: "Include minimal LaTeX examples?",
|
|
373
|
+
default: true,
|
|
374
|
+
},
|
|
375
|
+
];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
FROM registry.gitlab.com/islandoftex/images/texlive:<% switch (texlive) {
|
|
2
|
+
case 2023: %>latest-basic<% break;
|
|
3
|
+
case 2022: %>TL2022-historic<% break;
|
|
4
|
+
} -%>
|
|
5
|
+
|
|
6
|
+
WORKDIR /workdir
|
|
7
|
+
|
|
8
|
+
COPY Texlivefile /workdir/
|
|
9
|
+
<% if (texlive == 2023) { -%>
|
|
10
|
+
|
|
11
|
+
RUN xargs tlmgr install --repository https://mirror.mwt.me/ctan/systems/texlive/tlnet < /workdir/Texlivefile
|
|
12
|
+
|
|
13
|
+
RUN tlmgr path add
|
|
14
|
+
<% } -%>
|
|
@@ -3,35 +3,36 @@ FROM reitzig/texlive-<% switch (latexcompiler) {
|
|
|
3
3
|
case "lualatex": %>base-luatex<% break;
|
|
4
4
|
default: %>base<% break;
|
|
5
5
|
} -%>:<% switch (texlive) {
|
|
6
|
-
case
|
|
7
|
-
case
|
|
6
|
+
case 2023: %>2023.1<% break;
|
|
7
|
+
case 2022: %>2022.8<% break;
|
|
8
|
+
case 2021: %>2021.9<% break;
|
|
8
9
|
} -%>
|
|
9
10
|
|
|
10
11
|
RUN apk update && apk add --no-cache bash perl python3 py3-pip
|
|
11
12
|
RUN pip3 install pygments
|
|
12
13
|
|
|
13
14
|
# Emulate "Install dependencies" of "entrypoint work ..."
|
|
14
|
-
<% if (texlive <
|
|
15
|
+
<% if (texlive < 2023) { -%>
|
|
15
16
|
RUN tlmgr update --self --repository http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/<%= texlive %>/tlnet-final
|
|
16
17
|
COPY Texlivefile /work/src
|
|
17
|
-
RUN xargs tlmgr install --repository http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/<%= texlive %>/tlnet-final < "/work/src/Texlivefile"
|
|
18
|
+
RUN xargs tlmgr install --repository http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/<%= texlive %>/tlnet-final < "/work/src/Texlivefile"
|
|
18
19
|
<% } else { -%>
|
|
19
20
|
RUN tlmgr update --self --repository https://mirror.mwt.me/ctan/systems/texlive/tlnet
|
|
20
21
|
COPY Texlivefile /work/src
|
|
21
|
-
RUN xargs tlmgr install --repository https://mirror.mwt.me/ctan/systems/texlive/tlnet < "/work/src/Texlivefile"
|
|
22
|
+
RUN xargs tlmgr install --repository https://mirror.mwt.me/ctan/systems/texlive/tlnet < "/work/src/Texlivefile"
|
|
22
23
|
<% } -%>
|
|
23
|
-
|
|
24
|
+
RUN sha256sum "/work/src/Texlivefile" > "/work/tmp/Texlivefile.sha"
|
|
24
25
|
#
|
|
25
26
|
# make <% if (bibtextool == "biblatex") { %>biber, <% } %>latexmk and texlogsieve available
|
|
26
27
|
<% if (bibtextool == "biblatex") { -%>
|
|
27
|
-
|
|
28
|
+
RUN cp /usr/local/texlive/<%= texlive %>/bin/x86_64-linuxmusl/biber /usr/local/bin
|
|
28
29
|
<% } -%>
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
RUN cp /usr/local/texlive/<%= texlive %>/bin/x86_64-linuxmusl/latexmk /usr/local/bin
|
|
31
|
+
RUN cp /usr/local/texlive/<%= texlive %>/bin/x86_64-linuxmusl/texlogsieve /usr/local/bin
|
|
31
32
|
<% if (latexcompiler === "lualatex") { -%>
|
|
32
33
|
#
|
|
33
34
|
# update font index
|
|
34
|
-
|
|
35
|
+
RUN luaotfload-tool --update
|
|
35
36
|
<% } -%>
|
|
36
37
|
# use latest texlogsieve
|
|
37
|
-
|
|
38
|
+
# RUN cd /usr/local/bin && wget https://gitlab.com/lago/texlogsieve/-/raw/main/texlogsieve?inline=false
|
|
@@ -159,7 +159,6 @@ Congratulations. You chose to use all available features.
|
|
|
159
159
|
## Background
|
|
160
160
|
|
|
161
161
|
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)"
|
|
162
|
-
Deep link: <ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip>.
|
|
163
162
|
|
|
164
163
|
## Quick start
|
|
165
164
|
|
|
@@ -168,12 +167,7 @@ Deep link: <ftp://ftp.springernature.com/cs-proceeding/llncs/llncs2e.zip>.
|
|
|
168
167
|
- Edit [paper.tex](paper.tex).
|
|
169
168
|
- `latexmk paper`.
|
|
170
169
|
|
|
171
|
-
When using on overleaf, you have to
|
|
172
|
-
|
|
173
|
-
1. Navigate to "Add Files"
|
|
174
|
-
2. Select "From External URL"
|
|
175
|
-
3. Paste <https://latextemplates.github.io/stys-for-overleaf/llncs.cls> into the field "URL to fetch the file from"
|
|
176
|
-
4. Click "Create"
|
|
170
|
+
When using on overleaf, you have to switch Overleaf to use TeXLive 2022 (or later).
|
|
177
171
|
|
|
178
172
|
As you see on GitHub actions, the paper compiles out of the box.
|
|
179
173
|
There is no need to adjust the packages or to remove some of them.
|
|
@@ -294,8 +288,8 @@ ShareLaTeX might output following warning:
|
|
|
294
288
|
> LaTeX document class for Lecture Notes in Computer Science'
|
|
295
289
|
> is available.
|
|
296
290
|
|
|
297
|
-
The reason is that you did not use `llncs.cls`
|
|
298
|
-
Please
|
|
291
|
+
The reason is that you did not use `llncs.cls` (included in your LaTeX distribution).
|
|
292
|
+
Please remove the file and update your LaTeX distribution.
|
|
299
293
|
<% break; case "ieee": -%>
|
|
300
294
|
|
|
301
295
|
### Q: I have questions on the IEEEtran class itself.
|
|
@@ -328,7 +322,7 @@ A: You have activated `\MakeOuterQuote{"}` and used some special babel command t
|
|
|
328
322
|
Now, you have to decide whether you want keep using plain quotes to enquote a word or use the special hyphenation command.
|
|
329
323
|
In other words: Do you want `"quote"` and `app\-lication\-specific` or `\enquote{quote} and application"=specific`?
|
|
330
324
|
|
|
331
|
-
Note that this should not happen when the template is generated as the setting `
|
|
325
|
+
Note that this should not happen when the template is generated as the setting `tweakouterquote` ensures that these two options are mutually exclusive.
|
|
332
326
|
|
|
333
327
|
### Q: I need more space. What can I do?
|
|
334
328
|
|
|
@@ -19,6 +19,7 @@ caption
|
|
|
19
19
|
catchfile
|
|
20
20
|
cfr-lm
|
|
21
21
|
cleveref
|
|
22
|
+
cmap
|
|
22
23
|
comment
|
|
23
24
|
csquotes
|
|
24
25
|
currfile
|
|
@@ -37,7 +38,11 @@ diagbox
|
|
|
37
38
|
environ
|
|
38
39
|
etexcmds
|
|
39
40
|
etoolbox
|
|
41
|
+
filehook
|
|
40
42
|
floatflt
|
|
43
|
+
<% if (latexcompiler == "lualatex") { -%>
|
|
44
|
+
fontspec
|
|
45
|
+
<% } -%>
|
|
41
46
|
framed
|
|
42
47
|
fvextra
|
|
43
48
|
gettitlestring
|
|
@@ -67,11 +72,15 @@ latexmk
|
|
|
67
72
|
letltxmacro
|
|
68
73
|
libertine
|
|
69
74
|
lineno
|
|
70
|
-
linenoamsmath
|
|
71
75
|
lipsum
|
|
72
76
|
listings
|
|
73
77
|
llncs
|
|
74
78
|
ltxcmds
|
|
79
|
+
<% if (latexcompiler == "lualatex") { -%>
|
|
80
|
+
luatexbase
|
|
81
|
+
luacode
|
|
82
|
+
lualatex-math
|
|
83
|
+
<% } -%>
|
|
75
84
|
marginnote
|
|
76
85
|
<% if (documentclass == "scientific-thesis") { -%>
|
|
77
86
|
mfirstuc
|
|
@@ -84,16 +93,20 @@ mwe
|
|
|
84
93
|
natbib
|
|
85
94
|
ncctools
|
|
86
95
|
newcomputermodern
|
|
96
|
+
newfloat
|
|
87
97
|
newtx
|
|
88
98
|
newtxtt
|
|
89
99
|
nfssext-cfr
|
|
90
100
|
nowidow
|
|
91
101
|
oberdiek
|
|
92
102
|
paralist
|
|
93
|
-
pbalance
|
|
94
103
|
pdfcomment
|
|
104
|
+
luatex85
|
|
95
105
|
pdfescape
|
|
96
106
|
pdftexcmds
|
|
107
|
+
<% if (examples) { -%>
|
|
108
|
+
pgf
|
|
109
|
+
<% } -%>
|
|
97
110
|
pict2e
|
|
98
111
|
preprint
|
|
99
112
|
refcount
|
|
@@ -102,20 +115,32 @@ rerunfilecheck
|
|
|
102
115
|
<% if (documentclass == "scientific-thesis") { -%>
|
|
103
116
|
scientific-thesis-cover
|
|
104
117
|
<% } -%>
|
|
118
|
+
<% if (latexcompiler == "lualatex") { -%>
|
|
119
|
+
selnolig
|
|
120
|
+
<% } -%>
|
|
121
|
+
<% if (documentclass == "acmart" || documentclass == 'scientific-thesis') { -%>
|
|
122
|
+
setspace
|
|
123
|
+
<% } -%>
|
|
105
124
|
siunitx
|
|
106
125
|
snapshot
|
|
107
126
|
soul
|
|
108
127
|
soulpos
|
|
109
|
-
soulutf8
|
|
110
128
|
sttools
|
|
111
129
|
stringenc
|
|
112
130
|
subfig
|
|
113
131
|
svn-prov
|
|
114
132
|
tcolorbox
|
|
115
133
|
texlogsieve
|
|
134
|
+
textcase
|
|
135
|
+
<% if ((documentclass == "ieee") || (font == "times")) { -%>
|
|
136
|
+
tex-gyre
|
|
137
|
+
times
|
|
138
|
+
<% } -%>
|
|
116
139
|
totpages
|
|
117
140
|
tracklang
|
|
118
141
|
translator
|
|
142
|
+
txfonts
|
|
143
|
+
unicode-math
|
|
119
144
|
uniquecounter
|
|
120
145
|
upquote
|
|
121
146
|
url
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
% Setze Deutsch als Sprache
|
|
2
2
|
\usepackage[english,main=ngerman]{babel}
|
|
3
|
-
|
|
3
|
+
% Neue deutsche Trennmuster
|
|
4
|
+
\babelprovide[hyphenrules=ngerman-x-latest]{german}
|
|
5
|
+
<% if (tweakouterquote == "babel") { -%>
|
|
4
6
|
%
|
|
5
7
|
% Hinweis von http://tex.stackexchange.com/a/321066/9075
|
|
6
8
|
% Ermögliche die Benutzung von "= als Trennstriche
|
|
@@ -3,7 +3,7 @@
|
|
|
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
4
|
% english has to go last to set it as default language
|
|
5
5
|
\usepackage[ngerman,main=english]{babel}
|
|
6
|
-
<% if (
|
|
6
|
+
<% if (tweakouterquote == "babel") { -%>
|
|
7
7
|
%
|
|
8
8
|
% Hint by http://tex.stackexchange.com/a/321066/9075 -> enable "= as dashes
|
|
9
9
|
\addto\extrasenglish{\languageshorthands{ngerman}\useshorthands{"}}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Bitte das \enquote{enquote-Makro} verwenden, um etwas in Anführungszeichen zu setzen.
|
|
5
5
|
Alternativ ist es auch über "`möglich"', Wörter in Anführungszeichen zu setzen.
|
|
6
6
|
|
|
7
|
-
<% if (
|
|
7
|
+
<% if (tweakouterquote == "outerquote") { -%>
|
|
8
8
|
Das Feature "MakeOuterQuote" wurde auch aktiviert, weshalb "einfache" Anführungszeichen auch genutzt werden können.
|
|
9
9
|
Achtung! Dieses Feature ist weitgehend unbekannt, so dass man ab und an falsche Anführungszeichen in \LaTeX-Dokumenten sieht.
|
|
10
10
|
Siehe \url{https://tex.stackexchange.com/a/150958/9075} für Details bezüglich dieser Lösung.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Please use the \enquote{enquote command} to quote something.
|
|
5
5
|
Quoting with "`quote"' or ``quote'' also works.
|
|
6
6
|
|
|
7
|
-
<% if (
|
|
7
|
+
<% if (tweakouterquote == "outerquote") { -%>
|
|
8
8
|
The feature "MakeOuterQuote" is also enabled, which enables "plain" double quotes to correctly enquote.
|
|
9
9
|
See \url{https://tex.stackexchange.com/a/150958/9075} for details on that solution.
|
|
10
10
|
<% } -%>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
% For easy quotations: \enquote{text}
|
|
2
2
|
% This package is very smart when nesting is applied, otherwise textcmds (see below) provides a shorter command
|
|
3
3
|
\usepackage[autostyle=true]{csquotes}
|
|
4
|
-
<% if (
|
|
4
|
+
<% if (tweakouterquote == "outerquote") { -%>
|
|
5
5
|
|
|
6
6
|
% Enable "quote" - see https://tex.stackexchange.com/a/150958/9075
|
|
7
7
|
\MakeOuterQuote{"}
|
|
@@ -11,3 +11,21 @@
|
|
|
11
11
|
\end{figure}
|
|
12
12
|
<%- eexample %>
|
|
13
13
|
<%- include('floatflt.example.en.tex', this); %>
|
|
14
|
+
<% if (documentclass == 'ieee') { -%>
|
|
15
|
+
|
|
16
|
+
One can span a figure across multiple columns by using \verb+\begin{figure*}+.
|
|
17
|
+
See \cref{fig:16x9} as an example.
|
|
18
|
+
|
|
19
|
+
<%- bexample %>
|
|
20
|
+
\begin{figure*}
|
|
21
|
+
\centering
|
|
22
|
+
% note that \textwidth is used instead of \linewidth
|
|
23
|
+
% This ensures that the graphics width is 60% of the "page" (text block), and not just 60% of the current text column
|
|
24
|
+
% See https://tex.stackexchange.com/a/17085/9075 for details
|
|
25
|
+
\includegraphics[width=.6\textwidth]{example-image-16x9}
|
|
26
|
+
\caption{16x9 Figure}
|
|
27
|
+
\label{fig:16x9}
|
|
28
|
+
\end{figure*}
|
|
29
|
+
<%- eexample %>
|
|
30
|
+
|
|
31
|
+
<% } -%>
|
|
@@ -9,7 +9,7 @@ Here are some hints:
|
|
|
9
9
|
In case you write <%- bquote %>application-specific<%- equote %>, then the word will only be hyphenated at the dash.
|
|
10
10
|
You can also write \verb1applica\allowbreak{}tion-specific1 (result: applica\allowbreak{}tion-specific), but this is much more effort.
|
|
11
11
|
|
|
12
|
-
<% if (
|
|
12
|
+
<% if (tweakouterquote == "outerquote") { -%>
|
|
13
13
|
In the net, you will read about that one can use a normal quote sign followed by an equal sign (\verb1"=1) to specify that hyphenation is allowed at other places in the word.
|
|
14
14
|
Since we use the quote sign for automatic quoation, this is not possible anymore.
|
|
15
15
|
Please use the command \verb1\hydash1 for the same purpose.
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
# Remove it, it you want lualatex to stop on errors
|
|
3
|
-
$pdflatex = '<%= latexcompiler %> <% if (requiresShellEscape) { %>--shell-escape <% } %>--interaction nonstopmode --synctex=-1 %O %S | texlogsieve';
|
|
1
|
+
$pdflatex = '<%= latexcompiler %> <% if (requiresShellEscape) { %>--shell-escape <% } %>--file-line-error --synctex=-1 %O %S | texlogsieve';
|
|
4
2
|
|
|
5
3
|
#Use SumatraPDF instead of the default PDF viewer
|
|
6
4
|
$pdf_previewer = 'start "C:\Program Files\SumatraPDF\SumatraPDF.exe"';
|