generator-latex-template 2026.7.29 → 2026.9.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/generators/app/index.js +24 -0
  2. package/generators/app/templates/.github/workflows/check.yml +28 -0
  3. package/generators/app/templates/README.en.md +21 -4
  4. package/generators/app/templates/Texlivefile +7 -2
  5. package/generators/app/templates/biblatex.example.en.tex +1 -1
  6. package/generators/app/templates/bibliography.bib +13 -0
  7. package/generators/app/templates/docs/thesis-checklist.md +51 -0
  8. package/generators/app/templates/dot.aspell.conf +6 -0
  9. package/generators/app/templates/dot.aspell.de.pws +13 -1
  10. package/generators/app/templates/dot.aspell.en.pws +5 -1
  11. package/generators/app/templates/dot.textlintrc.json +17 -0
  12. package/generators/app/templates/floats.example.de.tex +2 -2
  13. package/generators/app/templates/floats.example.en.tex +2 -2
  14. package/generators/app/templates/hyperref.preamble.en.tex +1 -1
  15. package/generators/app/templates/hyphenation.example.en.tex +1 -1
  16. package/generators/app/templates/listings.example.de.tex +5 -5
  17. package/generators/app/templates/listings.example.en.tex +5 -5
  18. package/generators/app/templates/main.de.tex +60 -48
  19. package/generators/app/templates/main.en.tex +60 -48
  20. package/generators/app/templates/math.example.en.tex +1 -1
  21. package/generators/app/templates/minted.example.en.tex +3 -3
  22. package/generators/app/templates/minted.preamble.en.tex +1 -1
  23. package/generators/app/templates/paragraphs.example.en.tex +1 -1
  24. package/generators/app/templates/subfig.example.en.tex +3 -3
  25. package/generators/app/templates/theorems.example.en.tex +2 -2
  26. package/generators/app/templates/thesis-additions.examples.en.tex +4 -4
  27. package/generators/app/templates/tikz.example.en.tex +1 -1
  28. package/generators/app/templates/todos.example.en.tex +1 -1
  29. package/generators/app/templates/varioref.preamble.de.tex +1 -1
  30. package/generators/app/templates/varioref.preamble.en.tex +1 -1
  31. package/generators/app/templates/zref-clever.example.en.tex +33 -0
  32. package/generators/app/templates/zref-clever.preamble.en.tex +21 -0
  33. package/generators/app/templates/zref-vario.example.en.tex +12 -0
  34. package/package.json +2 -2
@@ -157,6 +157,23 @@ export default class extends Generator {
157
157
  this.props.bibtextool = "biblatex";
158
158
  }
159
159
 
160
+ // `crossref` is a plain CLI flag (no prompt): zref-clever (default, works
161
+ // with PDF tagging) or the legacy cleveref. Templates write references as
162
+ // <%- cref %>{…} / <%- Cref %>{…} (sentence start) and <%- vref %>/<%- Vref %>.
163
+ this.props.crossref =
164
+ this.options.crossref === "cleveref" ? "cleveref" : "zref-clever";
165
+ if (this.props.crossref === "cleveref") {
166
+ this.props.cref = "\\cref";
167
+ this.props.Cref = "\\Cref";
168
+ this.props.vref = "\\vref";
169
+ this.props.Vref = "\\Vref";
170
+ } else {
171
+ this.props.cref = "\\zcref";
172
+ this.props.Cref = "\\Zcref";
173
+ this.props.vref = "\\zvref";
174
+ this.props.Vref = "\\zvref[S]";
175
+ }
176
+
160
177
  // Only minted and the PlantUML UML example need shell-escape; tikz-uml and the
161
178
  // remaining thesis content do not.
162
179
  this.props.requiresShellEscape =
@@ -304,6 +321,13 @@ export default class extends Generator {
304
321
  this.templatePath("dot.aspell.conf"),
305
322
  this.destinationPath(".aspell.conf"),
306
323
  );
324
+ // The mwe quick start lints Markdown with its own (template-managed) config
325
+ if (this.props.documentclass !== "mwe") {
326
+ this.fs.copy(
327
+ this.templatePath("dot.textlintrc.json"),
328
+ this.destinationPath(".textlintrc.json"),
329
+ );
330
+ }
307
331
  if (this.props.language == "de" || this.props.githubpublish) {
308
332
  this.fs.copy(
309
333
  this.templatePath("dot.aspell.de.pws"),
@@ -182,6 +182,34 @@ jobs:
182
182
  echo 'If you want to ignore words, add them to `.aspell.<%= language %>.pws` (your personal aspell dictionary)' >> $GITHUB_STEP_SUMMARY
183
183
  exit 1
184
184
  fi
185
+ textlint:
186
+ runs-on: ubuntu-latest
187
+ steps:
188
+ - name: Set up Git repository
189
+ uses: actions/checkout@v7
190
+ - uses: actions/setup-node@v7
191
+ with:
192
+ node-version: '22'
193
+ - name: Lint English prose with textlint
194
+ run: |
195
+ # Report-only: findings show up as annotations, the job does not fail.
196
+ # Rules come from .textlintrc.json. Only English documents (marked by
197
+ # "% !TeX spellcheck = en-US") are linted: write-good targets English.
198
+ files=$(grep -l '^% !TeX spellcheck = en' *.tex || true)
199
+ if [ -z "$files" ]; then
200
+ echo "No English .tex files to lint." >> "$GITHUB_STEP_SUMMARY"
201
+ exit 0
202
+ fi
203
+ npx --yes \
204
+ --package textlint \
205
+ --package textlint-plugin-latex2e \
206
+ --package textlint-filter-rule-allowlist \
207
+ --package textlint-rule-terminology \
208
+ --package textlint-rule-write-good \
209
+ textlint --format github $files \
210
+ | sed "s|${GITHUB_WORKSPACE}/||g" | tee annotations.txt || true
211
+ count=$(grep -c '^::\(error\|warning\)' annotations.txt || true)
212
+ echo "textlint reported ${count} finding(s) in: ${files//$'\n'/, }" >> "$GITHUB_STEP_SUMMARY"
185
213
  <% } -%>
186
214
  indent:
187
215
  runs-on: ubuntu-latest
@@ -135,6 +135,14 @@ The LaTeX snippets this template is assembled from can be inspected at <https://
135
135
  - [paper-minted.pdf](https://latextemplates.github.io/acm-enhanced/paper-minted.pdf) - conference paper showing minted in action.
136
136
  <% break; default: -%>
137
137
  <% break; } } -%>
138
+ <% if (isThesis) { -%>
139
+
140
+ ## Writing your thesis
141
+
142
+ - Read [Student Thesis Projects](https://vdf.ch/product/student-thesis-projects-en.html) by Lichter, Ludewig, Deininger, and Schneider.
143
+ The open-access book explains how to organize, conduct, write, and present a thesis.
144
+ - Before handing in, work through the [thesis checklist](docs/thesis-checklist.md).
145
+ <% } -%>
138
146
 
139
147
  ## Usage
140
148
 
@@ -196,6 +204,15 @@ On the command line, there are additional features:
196
204
  - `make stand`: Creates a new PDF with the current status of the document.
197
205
  - `make view`: Opens the configured viewer
198
206
  - `make mrproper`: Cleans up and removes also editor backup files.
207
+ <% if (documentclass != "mwe") { -%>
208
+
209
+ The `textlint` job of the `Check` workflow reports weakening words (e.g., "clearly", "just") in the English `.tex` files as annotations.
210
+ Run it locally with `npx` (needs Node.js; rules come from `.textlintrc.json`):
211
+
212
+ ```bash
213
+ npx --yes --package textlint --package textlint-plugin-latex2e --package textlint-filter-rule-allowlist --package textlint-rule-terminology --package textlint-rule-write-good textlint <%= filenames.main %>.tex
214
+ ```
215
+ <% } -%>
199
216
  <% if (documentclass == "mwe") { -%>
200
217
 
201
218
  ### Linting your Markdown
@@ -239,8 +256,8 @@ Following features are enabled in this template:
239
256
  See <https://tex.stackexchange.com/a/441701/9075> for details.
240
257
  <% } -%>
241
258
  - Automatic setting of "Fig." and "Section"/"Sect." according to the LNCS style.
242
- Just use `\Cref{sec:xy}` at the beginning of a sentence and `\cref{sec:xy}` in the middle of a sentence.
243
- Thanx to [cleveref].
259
+ Just use `<%- Cref %>{sec:xy}` at the beginning of a sentence and `<%- cref %>{sec:xy}` in the middle of a sentence.
260
+ Thanx to [<%= crossref %>].
244
261
  <% if (font == "default" || githubpublish) { -%>
245
262
  - Sharper font (still compatible with Springer's requirements).
246
263
  <% } -%>
@@ -264,7 +281,7 @@ Following features are enabled in this template:
264
281
  - <% if (githubpublish && !isThesis) { -%>(Optional) <% } %>Support todos as pdf annotations. This is enabled by the [pdfcomment] package.
265
282
  <% } -%>
266
283
  - [microtypographic extensions](https://www.ctan.org/pkg/microtype) for a better look of the paper.
267
- - Modern packages such as [microtype], [cleveref]<% if (enquotes == "csquotes" || githubpublish) { %>, [csquotes]<% } %><% if (documentclass != 'lncs') { %>, [paralist]<% } %>, [hyperref], [hypcap], [upquote]<% if (documentclass == 'lncs') { %>, [natbib]<% } %>, [booktabs].
284
+ - Modern packages such as [microtype], [<%= crossref %>]<% if (enquotes == "csquotes" || githubpublish) { %>, [csquotes]<% } %><% if (documentclass != 'lncs') { %>, [paralist]<% } %>, [hyperref], [hypcap], [upquote]<% if (documentclass == 'lncs') { %>, [natbib]<% } %>, [booktabs].
268
285
  <% if ((reallatexcompiler.startsWith("lualatex")) || githubpublish) { -%>
269
286
  - <% if (githubpublish && !isThesis) { -%>(Optional) <% } %>LaTeX compilation using the modern [lualatex] compiler.
270
287
  For older systems, [pdflatex](https://en.wikipedia.org/wiki/PdfTeX) is still supported.
@@ -901,7 +918,7 @@ Any derived work can freely be relicensed and can omit original copyright and li
901
918
  [biblatex]: http://tex.stackexchange.com/tags/biblatex/info
902
919
  [bibtex]: https://www.ctan.org/pkg/bibtex
903
920
  [booktabs]: https://ctan.org/pkg/booktabs
904
- [cleveref]: https://ctan.org/pkg/cleveref
921
+ [<%= crossref %>]: https://ctan.org/pkg/<%= crossref %>
905
922
  [csquotes]: https://www.ctan.org/pkg/csquotes
906
923
  [hypcap]: https://www.ctan.org/pkg/hypcap
907
924
  [hyperref]: https://ctan.org/pkg/hyperref
@@ -48,7 +48,9 @@ cfr-lm
48
48
  <% if (githubpublish || (documentclass == "ustutt")) { -%>
49
49
  charter<%# required by mathdesign-charter%>
50
50
  <% } -%>
51
+ <% if (githubpublish || (crossref == "cleveref")) { -%>
51
52
  cleveref
53
+ <% } -%>
52
54
  cm-super
53
55
  <% if (githubpublish || (documentclass == "acmart")) { -%>
54
56
  cmap
@@ -341,6 +343,9 @@ xpatch
341
343
  <% } -%>
342
344
  xstring<%# this includes stfloats; required by textcomp %>
343
345
  zref
344
- <% if (githubpublish || (documentclass == "mwe")) { -%>
345
- zref-clever<%# smart \zcref cross-references in the mwe quick-start %>
346
+ <% if (githubpublish || (documentclass == "mwe") || (crossref == "zref-clever")) { -%>
347
+ zref-clever
348
+ <% } -%>
349
+ <% if (githubpublish || (isThesis && (crossref == "zref-clever"))) { -%>
350
+ zref-vario
346
351
  <% } -%>
@@ -11,4 +11,4 @@ In case one wants to name the author: \textcite{mwe} shows a minimal \LaTeX{} ex
11
11
  Note that \texttt{\textbackslash textcite\{mwe\}} prints both the author and the reference to the bibliography entry.
12
12
 
13
13
  Remember that you have to call \texttt{biber <%= filenames.main %>} to generate the bibliography data for \texttt{<%= reallatexcompiler %>}.
14
- You will need to run \texttt{<%= reallatexcompiler %>} twice to ensure that the page numbers are updated correctly.
14
+ You will need to run \texttt{<%= reallatexcompiler %>} twice so that the page numbers are up to date.
@@ -45,4 +45,17 @@
45
45
  }
46
46
  <% } -%>
47
47
 
48
+ @Book{Lichter2026,
49
+ author = {Horst Lichter and Jochen Ludewig and Marcus Deininger and Kurt Schneider},
50
+ title = {{Student Thesis Projects}: A Guide to Organizing, Conducting, and Presenting Student Thesis Projects Using the Example of Computer Science},
51
+ year = {2026},
52
+ edition = {7},
53
+ publisher = {vdf Hochschulverlag},
54
+ address = {Zollikon},
55
+ isbn = {978-3-7281-4241-2},
56
+ doi = {10.3218/4241-2},
57
+ url = {https://vdf.ch/product/student-thesis-projects-en.html},
58
+ urldate = {2026-09-23},
59
+ }
60
+
48
61
  @Comment{jabref-meta: databaseType:<%= bibtextool %>;}
@@ -0,0 +1,51 @@
1
+ # Thesis checklist
2
+
3
+ Work through this list before you hand in your thesis.
4
+ It is not part of the PDF, so there is nothing to remove afterwards.
5
+ For much more advice on organizing, conducting, writing, and presenting a thesis, read [Student Thesis Projects](https://vdf.ch/product/student-thesis-projects-en.html) by Lichter, Ludewig, Deininger, and Schneider (open access).
6
+
7
+ ## Readable from beginning to end
8
+
9
+ - [ ] Every term, concept, and abbreviation is introduced before it is used.
10
+ - [ ] References to earlier parts are fine; references to later parts are rare in the running text.
11
+ - [ ] Each chapter ends in a way that leads to the next one.
12
+
13
+ ## Readable in ten minutes
14
+
15
+ A reader who opens the thesis anywhere and has ten minutes must find their way.
16
+
17
+ - [ ] No heading is directly followed by another heading: there is always text after a heading.
18
+ - [ ] After a chapter heading, this text is an introductory paragraph that outlines the chapter's sections.
19
+ - [ ] This paragraph refers back to what the chapter builds on and forward to where its results are used.
20
+ - [ ] The introduction alone summarizes the whole argument: problem, method, results, and their interpretation.
21
+
22
+ ## Scientific argument
23
+
24
+ - [ ] The research question is stated precisely.
25
+ - [ ] The method is described so that someone else could reproduce your steps.
26
+ - [ ] Results are reported first and interpreted separately.
27
+ - [ ] The conclusion answers the research question and names limitations and future work.
28
+ - [ ] The abstract was written last and matches the thesis.
29
+
30
+ ## Sources
31
+
32
+ - [ ] Every statement that is not your own has a citation; direct quotes are marked as such.
33
+ - [ ] Bibliography entries are complete (authors, title, venue, year, DOI where available).
34
+ - [ ] Every cited web page states when you last accessed it (`urldate` field, printed as "visited on …").
35
+ - [ ] The library is cleaned up with [JabRef's cleanup entries](https://docs.jabref.org/finding-sorting-and-cleaning-entries/cleanupentries) (consistent formatting, e.g., of dates, page ranges, and DOIs).
36
+ - [ ] The use of AI tools is declared as your examination regulations require.
37
+
38
+ ## Figures, tables, and listings
39
+
40
+ - [ ] Each one is referenced and discussed in the text.
41
+ - [ ] Each caption is understandable on its own.
42
+ - [ ] Text in figures is legible, also when printed.
43
+
44
+ ## Form
45
+
46
+ - [ ] The PDF shows no `??` (undefined references or citations).
47
+ - [ ] All TODO notes are resolved.
48
+ - [ ] All hints and examples of this template are removed.
49
+ - [ ] The text is spell-checked and grammar-checked (see the README for tools).
50
+ - [ ] The title page is correct: title, your name, supervisors, dates.
51
+ - [ ] The formal requirements of your examination office are met (page limit, signed declaration, number of copies, file format).
@@ -48,3 +48,9 @@ add-tex-command usebibmacro p
48
48
  add-tex-command usemintedstyle p
49
49
  add-tex-command usepackage oooooop
50
50
  add-tex-command usetikzlibrary p
51
+ add-tex-command zcLanguageSetup pp
52
+ add-tex-command zcref op
53
+ add-tex-command zcRefTypeSetup pp
54
+ add-tex-command zcsetup p
55
+ add-tex-command zvref op
56
+ add-tex-command Zcref op
@@ -1,5 +1,6 @@
1
- personal_ws-1.1 de 122 utf-8
1
+ personal_ws-1.1 de 134 utf-8
2
2
  ACM
3
+ Access
3
4
  Atlantic
4
5
  BPEL
5
6
  BPMN
@@ -9,6 +10,7 @@ Das
9
10
  Database
10
11
  Diag
11
12
  Firstname
13
+ Fließtext
12
14
  Geänderter
13
15
  Hier
14
16
  IEEEtran
@@ -25,15 +27,21 @@ North
25
27
  OMG
26
28
  ORCID
27
29
  OldStyle
30
+ Open
28
31
  Organization
29
32
  Practitioner
33
+ Projects
30
34
  RDBMS
31
35
  RGB
36
+ Rückverweise
32
37
  TODOs
33
38
  Textfarbe
39
+ Thesis
34
40
  Treaty
35
41
  UML
42
+ Vorwärtsverweise
36
43
  Worten
44
+ Zcref
37
45
  abbreviationdot
38
46
  aboveskip
39
47
  acmnumeric
@@ -116,8 +124,12 @@ subfigure
116
124
  subfigures
117
125
  tion
118
126
  tt
127
+ vorausverweist
119
128
  werden
120
129
  wird
121
130
  wurde
122
131
  xleftmargin
132
+ zcref
133
+ zref
134
+ zvref
123
135
  œ
@@ -1,4 +1,4 @@
1
- personal_ws-1.1 en 128 utf-8
1
+ personal_ws-1.1 en 132 utf-8
2
2
  ACM
3
3
  Atlantic
4
4
  BPEL
@@ -34,6 +34,7 @@ Textfarbe
34
34
  Treaty
35
35
  UML
36
36
  Worten
37
+ Zcref
37
38
  abbreviationdot
38
39
  aboveskip
39
40
  acmnumeric
@@ -126,4 +127,7 @@ werden
126
127
  wird
127
128
  wurde
128
129
  xleftmargin
130
+ zcref
131
+ zref
132
+ zvref
129
133
  œ
@@ -0,0 +1,17 @@
1
+ {
2
+ "plugins": {
3
+ "latex2e": true
4
+ },
5
+ "filters": {
6
+ "allowlist": {
7
+ "allow": ["/\\bonly\\b/i"]
8
+ }
9
+ },
10
+ "rules": {
11
+ "terminology": true,
12
+ "write-good": {
13
+ "tooWordy": false,
14
+ "whitelist": ["only"]
15
+ }
16
+ }
17
+ }
@@ -1,7 +1,7 @@
1
1
  <%= heading2 %>{Abbildungen}
2
2
 
3
3
  <%- bexample %>
4
- \Cref{fig:label} zeigt etwas Interessantes
4
+ <%- Cref %>{fig:label} zeigt etwas Interessantes
5
5
 
6
6
  \begin{figure}
7
7
  \centering
@@ -14,7 +14,7 @@
14
14
  <% if (documentclass == 'ieee') { -%>
15
15
 
16
16
  One can span a figure across multiple columns by using \verb+\begin{figure*}+.
17
- See \cref{fig:16x9} as an example.
17
+ See <%- cref %>{fig:16x9} as an example.
18
18
 
19
19
  <%- bexample %>
20
20
  \begin{figure*}
@@ -1,7 +1,7 @@
1
1
  <%= heading2 %>{Figures}
2
2
 
3
3
  <%- bexample %>
4
- \Cref{fig:label} shows something interesting.
4
+ <%- Cref %>{fig:label} shows something interesting.
5
5
 
6
6
  \begin{figure}
7
7
  \centering
@@ -17,7 +17,7 @@
17
17
  <% if (documentclass == 'ieee') { -%>
18
18
 
19
19
  One can span a figure across multiple columns by using \verb+\begin{figure*}+.
20
- See \cref{fig:16x9} as an example.
20
+ See <%- cref %>{fig:16x9} as an example.
21
21
 
22
22
  <%- bexample %>
23
23
  \begin{figure*}
@@ -1,4 +1,4 @@
1
- % Enable that parameters of \cref{}, \ref{}, \cite{}, ... are linked so that a reader can click on the number an jump to the target in the document
1
+ % Enable that parameters of \zcref{}, \ref{}, \cite{}, ... are linked so that a reader can click on the number an jump to the target in the document
2
2
  \usepackage{hyperref}
3
3
 
4
4
  <% if (documentclass != "ustutt") { -%>
@@ -2,7 +2,7 @@
2
2
 
3
3
  \LaTeX{} automatically hyphenates words.
4
4
  When using \href{https://ctan.org/pkg/microtype}{microtype}, there should be fewer hyphenations than in other settings.
5
- It might be necessary to tweak the hyphenations nevertheless.
5
+ You might still need to tweak the hyphenation.
6
6
  Here are some hints:
7
7
 
8
8
  <%- bexample %>
@@ -1,8 +1,8 @@
1
1
  <%= heading2 %>{Quellcode}
2
2
 
3
3
  <%- bexample %>
4
- \Cref{lst:XML} zeigt XML-Quelltext.
5
- \Cref{line:comment} enthält einen Kommentar.
4
+ <%- Cref %>{lst:XML} zeigt XML-Quelltext.
5
+ <%- Cref %>{line:comment} enthält einen Kommentar.
6
6
 
7
7
  \begin{lstlisting}[
8
8
  language=XML,
@@ -16,7 +16,7 @@
16
16
  <%- eexample %>
17
17
 
18
18
  Der zusätzliche Paramter \verb+float+ führt dazu, dass das Listing auch floated.
19
- \Cref{lst:flXML} zeigt das gleitendede Listing.
19
+ <%- Cref %>{lst:flXML} zeigt das gleitendede Listing.
20
20
 
21
21
  <%- bexample %>
22
22
  \begin{lstlisting}[
@@ -33,7 +33,7 @@ Der zusätzliche Paramter \verb+float+ führt dazu, dass das Listing auch floate
33
33
  \end{lstlisting}
34
34
  <%- eexample %>
35
35
 
36
- Es ist möglich auch JSON zu setzen, wie in \cref{lst:json} gezeigt.
36
+ Es ist möglich auch JSON zu setzen, wie in <%- cref %>{lst:json} gezeigt.
37
37
 
38
38
  <%- bexample %>
39
39
  \begin{lstlisting}[
@@ -47,7 +47,7 @@ Es ist möglich auch JSON zu setzen, wie in \cref{lst:json} gezeigt.
47
47
  \end{lstlisting}
48
48
  <%- eexample %>
49
49
 
50
- Java ist auch möglich -- \cref{lst:java}.
50
+ Java ist auch möglich -- <%- cref %>{lst:java}.
51
51
 
52
52
  <%- bexample %>
53
53
  \begin{lstlisting}[
@@ -1,8 +1,8 @@
1
1
  <%= heading2 %>{Source Code}
2
2
 
3
3
  <%- bexample %>
4
- \Cref{lst:XML} shows source code written in XML.
5
- \Cref{line:comment} contains a comment.
4
+ <%- Cref %>{lst:XML} shows source code written in XML.
5
+ <%- Cref %>{line:comment} contains a comment.
6
6
 
7
7
  \begin{lstlisting}[
8
8
  language=XML,
@@ -16,7 +16,7 @@
16
16
  <%- eexample %>
17
17
 
18
18
  One can also add \verb+float+ as parameter to have the listing floating.
19
- \Cref{lst:flXML} shows the floating listing.
19
+ <%- Cref %>{lst:flXML} shows the floating listing.
20
20
 
21
21
  <%- bexample %>
22
22
  \begin{lstlisting}[
@@ -33,7 +33,7 @@ One can also add \verb+float+ as parameter to have the listing floating.
33
33
  \end{lstlisting}
34
34
  <%- eexample %>
35
35
 
36
- One can also typeset JSON as shown in \cref{lst:json}.
36
+ One can also typeset JSON as shown in <%- cref %>{lst:json}.
37
37
 
38
38
  <%- bexample %>
39
39
  \begin{lstlisting}[
@@ -47,7 +47,7 @@ One can also typeset JSON as shown in \cref{lst:json}.
47
47
  \end{lstlisting}
48
48
  <%- eexample %>
49
49
 
50
- Java is also possible as shown in \cref{lst:java}.
50
+ Java is also possible as shown in <%- cref %>{lst:java}.
51
51
 
52
52
  <%- bexample %>
53
53
  \begin{lstlisting}[