diff --git a/slides/basic-documents.de.md b/slides/basic-documents.de.md index e86a662..1b97cdf 100644 --- a/slides/basic-documents.de.md +++ b/slides/basic-documents.de.md @@ -326,17 +326,20 @@ Inhaltsverzeichnis Dokument und Text gliedern @content -* Öffnet die Datei `document-structure.tex`, die im Ordner `exercises/basic-document-structure` liegt. -* Packt den gesamten Text in der Datei in eine **Document**-Umgebung und schreibt darüber folgende **Präambel**. +::: {.box .warning} +**Schließt alle offenen Tabs** aus vorherigen Aufgaben. +::: -``` {.lang-tex .hljs .fragment} +* Öffnet die Datei `document-structure.tex`, die im Ordner `exercises/basic-document-structure` liegt. +* Packt den gesamten Text in der Datei in eine **document**-Umgebung und schreibt darüber folgende **Präambel**. + +``` {.lang-tex .hljs} \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman]{babel} ``` -* Öffnet mittels Rechtsklick auf die Datei das Kontextmenü und setzt die Datei als explizites Root-Dokument. Kompiliert sie anschließend. * Wie ihr sehen könnt, sind in der Datei die Absätze im Dokument mit `\\` erstellt worden. Ersetzt diese durch richtige Absätze. * Zeit für etwas Struktur! Verwendet für die **Überschriften** die passenden LaTeX-Befehle (`\section` u. ä.). * Fügt anschließend ein **Inhaltsverzeichnis** in euer Dokument ein. diff --git a/slides/basic-documents.en.md b/slides/basic-documents.en.md index 851a493..f799599 100644 --- a/slides/basic-documents.en.md +++ b/slides/basic-documents.en.md @@ -323,17 +323,20 @@ Table of contents Structure your document and text @content +::: {.box .warning} +**Close all open tabs** from previous tasks. +::: + * Open the file `document-structure.tex`. It is located in the directory `exercises/basic-document-structure`. * Wrap the entire text in a **document** environment and insert the following **preamble**. -``` {.lang-tex .hljs .fragment} +``` {.lang-tex .hljs} \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[english]{babel} ``` -* In TeXstudio, right click on the file and select “Set as explicit root document.” Next, compile the file. * As you may already have noticed, **paragraphs** are marked as ‘`\\`’. Use real paragraphs instead. * Time to structure our document! Use LaTex commands to declare all **headings** (`\section`, `\subsubsection`, etc.). * Add a **table of contents** to your document. diff --git a/slides/intro.de.md b/slides/intro.de.md index 027c8ef..90d4e3e 100644 --- a/slides/intro.de.md +++ b/slides/intro.de.md @@ -4,7 +4,7 @@ Ablauf des Workshops @content -**Ziel:** Wir arbeiten zusammen unser [LaTeX-Skript](https://github.com/fs-wiai/latex-script/) durch, das ihr nach dem Workshop als kompakte Referenz verwenden könnt. +**Ziel:** Wir arbeiten zusammen unser [LaTeX-Skript](https://git.stuve-bamberg.de/latex/latex-skript/) durch, das ihr nach dem Workshop als kompakte Referenz verwenden könnt. * Learning by Doing * Verstehen, wie LaTeX funktioniert @@ -133,7 +133,7 @@ erstellt aus dem Quelltext ein fertig formatiertes PDF-Dokument ### Editor zum Schreiben unseres Quelltextes mit allen Befehlen zur semantischen Gliederung -[TeXstudio](http://www.texstudio.org/) (Empfehlung), [VS Codium](https://vscodium.com) (für Fortgeschrittene, Anleitung auf [Github](https://github.com/fs-wiai/latex-script/blob/github/vs-code-instructions.md)) +[TeXstudio](http://www.texstudio.org/) (Empfehlung), [VS Codium](https://vscodium.com) (für Fortgeschrittene, Anleitung auf [Github](https://git.stuve-bamberg.de/latex/latex-skript/src/branch/master/docs/vs-code-instructions.md)) ::: @slide(layout=task) @@ -147,12 +147,12 @@ Erstmaliges Kompilieren des Skriptes @content * Ladet das Projektarchiv aus dem VC herunter. * Entpackt das Archiv. -* Öffnet die Datei main-exercises.tex in TeXstudio. Ihr findet es im Wurzelverzeichnis des Archivs. +* Öffnet die Datei `install-verification/main.tex` in TeXstudio. * Kompiliert die Datei, indem ihr klickt. -* Einige neue Dateien sollten nun durch das Kompilieren generiert werden. - +* Schaut euch die neuen Dateien an, die durch das Kompilieren generiert werden. + ::: {.box .warning} -**Windows**: Um Dateiendungen zu aktivieren, klickt auf das Ansichts-Tab im Dateiexplorer und wählt *Dateiendungen*. So könnt ihr besser zwischen den einzelnen main-Files unterscheiden. +**Windows**: Um Dateiendungen zu aktivieren, klickt auf das Ansichts-Tab im Dateiexplorer und wählt *Dateiendungen*. So könnt ihr besser zwischen den einzelnen `main`-Dateien unterscheiden. ::: @slide(layout=extra-content-only) diff --git a/slides/intro.en.md b/slides/intro.en.md index fac9fc1..a786148 100644 --- a/slides/intro.en.md +++ b/slides/intro.en.md @@ -4,7 +4,7 @@ Procedure of this workshop @content -**Goal:** You are going to build your own little
LaTeX manual based on our [LaTeX Script](https://github.com/fs-wiai/latex-script/). +**Goal:** You are going to build your own little
LaTeX manual based on our [LaTeX Script](https://git.stuve-bamberg.de/latex/latex-skript/). * learning by doing * understanding how LaTeX works @@ -133,7 +133,7 @@ On **Windows**, please open the MikTEXstudio. It is located in the root directory of the archive. -* Compile `main-exercises.tex` by pressing -* A few new files will be generated by the compilation. +* Open the file `install-verification/main.tex` in TEXstudio. +* Compile the file by pressing +* Have a look at the new files that will be generated by the compilation. ::: {.box .warning} **Windows**: In order to enable file endings, click the view tab in the file explorer, and select *file name extensions*. This helps differentiating the different ``main`` files. diff --git a/slides/literature.de.md b/slides/literature.de.md index cbc1624..f2bc4b3 100644 --- a/slides/literature.de.md +++ b/slides/literature.de.md @@ -7,6 +7,19 @@ Literatur­verwaltung +@slide(layout=preview-only) + +@preview +![Zitieren im Alpha-Zitierstil (`[style=alphabetic,backend=biber]`)](svg/literature/bibtex-alpha-crop.svg){.large .thin-padding} + + +@slide(layout=preview-only) + +@preview +![Zitieren im IEEE-Zitierstil (`[style=ieee,backend=biber]`)](svg/literature/bibtex-ieee-crop.svg){.large .thin-padding} + + + @slide(layout=content-only) @title @@ -14,8 +27,14 @@ Was brauchen wir dafür? @content * eine **Bibliographiedatei** (nachfolgend `.bib`-Datei) zur Speicherung von Literaturverweisen -* **BibLaTeX** als Schnittstelle zwischen der Literatur und LaTeX +* **Biber/BibLaTeX** als Schnittstelle zwischen der Literatur und LaTeX +::: {.box .warning} +**TeXstudio vorbereiten**: + +* Bibliographie > Art: `BibLaTeX` +* Optionen > TeXstudio konfigurieren > Erzeugen > ändert das Standard-Bibliographieprogramm zu `Biber` +::: @slide(layout=wide-content) @@ -23,7 +42,7 @@ Was brauchen wir dafür? Was ist diese ominöse `.bib`-Datei? @content -* Sammlung von Literatureinträgen im BibLaTeX-Format +* Sammlung von Literatureinträgen im BibTeX-Format¹ * Beispielhafter Literatureintrag: ``` {.hljs .lang-tex} @@ -38,6 +57,8 @@ Was ist diese ominöse `.bib`-Datei? } ``` +[1] **Hinweis**: Auch wenn wir mit BibLaTeX arbeiten, folgt unsere Bibliographie-Datei dem Format des alternativen Programms BibTeX. Der Name hat sich für verschiedene Dinge im Zusammenhang mit LaTeX-Referenzen etabliert, ähnlich wie wir spezielle Suchmaschinen im Sprachgebrauch für alle Suchanfragen im Netz verwenden. + @slide(layout=content-only) @title @@ -58,8 +79,6 @@ Das heißt im Umkehrschluss: Möglichst wenig manuell an den Zitationen herumsch -> Zwei Dinge sind unendlich. Das Universum und die Auswahl an Zitierstilen.Unbekannt - @slide(layout=content-only) @@ -106,6 +125,8 @@ backend=biber]{biblatex} backend=biber]{biblatex} ``` +> Zwei Dinge sind unendlich. Das Universum und die Auswahl an Zitierstilen.Unbekannt + @slide(layout=content-only) @title @@ -184,34 +205,22 @@ dashed=false, url=false, backend=biber]{biblatex} ``` -Ein Beispielzitat im obigen Zitierstil: -``` {.lang-tex .hljs} -\textcite{thatcher2002} oder in Klammern -\parencite{thatcher2002}. -\printbibliography +Ein Beispielzitat im obigen Zitierstil: + +``` {.lang-tex .hljs} +… in Klammern \parencite{thatcher2002} oder +einfach als \textcite{thatcher2002} … ``` @preview -![](svg/chapter-14/example_citation-crop.svg) +![](svg/literature/example_citation-crop.svg) @slide(layout=preview-only) @preview -![Zitieren im Alpha-Zitierstil](svg/literature/bibtex-alpha-crop.svg){.large .thin-padding} - - -@slide(layout=preview-only) - -@preview -![Zitieren im IEEE-Zitierstil](svg/literature/bibtex-ieee-crop.svg){.large .thin-padding} - - -@slide(layout=preview-only) - -@preview -![Finden von fertigen BibTeX-Einträgen – Bamberger Katalog](svg/literature/bamberger_katalog_bibtex.jpg){.large} +![Finden von fertigen BibTeX-Einträgen – Bamberger Katalog](svg/literature/bamberger_katalog_bibtex.png){.large} @slide(layout=preview-only) @@ -249,7 +258,7 @@ Ein Literaturverzeichnis erstellen und einfügen * Vergebt aussagekräftige BibTeX-Keys. * Bindet die Bibliografie-Datei in der Präambel des Projektes ein. * Zitiert die zwei Handbücher im Text in der Datei `exercises/literature/literature.tex`. -* Wählt den Bibliographiestil `alpha`. +* Wählt den Bibliographiestil `alphabetic`. * Stellt sicher, dass das Literaturverzeichnis angezeigt wird. :::{.box .warning} @@ -284,9 +293,6 @@ Zotero mit Better BibTeX aufsetzen * Werkzeuge > Plugins > aktiviert `Better BibTeX für Zotero` * exportiert die Bibliothek von Zotero, wählt `Better BibLaTex` als Format und setzt einen Haken bei `keep updated` * speichert die exportierte Bibliothek in eurem LaTeX-Projektarchiv und nutzt sie als `.bib`-Datei -* **TeXstudio**: - * Bibliographie > Art: `BibLaTeX` - * Optionen > TeXstudio konfigurieren > Erzeugen > ändert das Standard-Bibliographieprogramm zu `Biber` @slide(layout=extra-content-only) diff --git a/slides/literature.en.md b/slides/literature.en.md index ede8999..4c76b7d 100644 --- a/slides/literature.en.md +++ b/slides/literature.en.md @@ -7,6 +7,18 @@ Reference management +@slide(layout=preview-only) + +@preview +![Citing in Alpha style (`[style=alphabetic,backend=biber]`)](svg/literature/bibtex-alpha-example-crop.svg){.large .thin-padding} + + +@slide(layout=preview-only) + +@preview +![Citing in IEEE style (`[style=ieee,backend=biber]`)](svg/literature/bibtex-ieee-example-crop.svg){.large .thin-padding} + + @slide(layout=content-only) @title @@ -14,8 +26,14 @@ What do we need? @content * a **bibliography file** (hereafter `.bib` file) for storing references -* **BibLaTeX** as an interface between the references and LaTeX +* **Biber/BibLaTeX** as an interface between the references and LaTeX +::: {.box .warning} +**Preparing TeXstudio**: + +* Bibliography > set type to `BibLaTeX` +* Options > Configure TeXstudio > Generate > set standard for bibliography to `Biber` +::: @slide(layout=wide-content) @@ -23,8 +41,8 @@ What do we need? What is this mysterious `.bib` file? @content -* collection of references in BibLaTeX format -* example: +* collection of references in BibTeX format¹ +* example content: ``` {.hljs .lang-tex} @article{turing1990, % the type of the document and an identifier for the \cite command @@ -38,6 +56,8 @@ What is this mysterious `.bib` file? } ``` +[1] **Note**: Even though we are working with BibLaTeX, our bibliography file adheres to the conventions of BibTeX, which is an alternative program. The name has been established for all kinds of things related to LaTeX citations. This is similar to the way we refer to online search by the name of one popular search engine. + @slide(layout=content-only) @title @@ -45,7 +65,7 @@ BibLaTeX @content * Package for creating and designing bibliographies -* Use of **biber** as backend +* Uses **biber** as a backend
**Some well-meaning advice** @@ -57,8 +77,6 @@ Trust BibLaTeX’s default citation styles! This conversely means: Avoid fiddling around with styles manually.
-> Two things are infinite: the universe and the assortment of citation styles.Unknown - @slide(layout=content-only) @@ -105,6 +123,8 @@ Changing the citation style backend=biber]{biblatex} ``` +> Two things are infinite: the universe and the assortment of citation styles.Unknown + @slide(layout=content-only) @title @@ -184,36 +204,22 @@ dashed=false, url=false, backend=biber]{biblatex} ``` -An exemplary reference in the citation style above: -``` {.lang-tex .hljs} -\textcite{thatcher2002} or in parentheses -\parencite{thatcher2002}. -\printbibliography +An exemplary reference in the citation style above: + +``` {.lang-tex .hljs} +… in parentheses \parencite{thatcher2002} +or simply as \textcite{thatcher2002} … ``` @preview -![](svg/chapter-14/example_citation_en-crop.svg) - - +![](svg/literature/example_citation_en-crop.svg) @slide(layout=preview-only) @preview -![Citing in Alpha style](svg/literature/bibtex-alpha-example-crop.svg){.large .thin-padding} - - -@slide(layout=preview-only) - -@preview -![Citing in IEEE style](svg/literature/bibtex-ieee-example-crop.svg){.large .thin-padding} - - -@slide(layout=preview-only) - -@preview -![Finding ready-made BibTeX entries – University of Bamberg Library](svg/literature/bamberg_catalogue_bibtex.jpg){.large} +![Finding ready-made BibTeX entries – University of Bamberg Library](svg/literature/bamberg_catalogue_bibtex.png){.large} @slide(layout=preview-only) @@ -251,7 +257,7 @@ Creating and inserting references * Add the BibTeX entries to the BibTeX file. * Assign unique and meaningful BibTeX keys. * Add the bibliography file to the project's preamble. -* Make use of the `alpha` bibliography style. +* Make use of the `alphabetic` bibliography style. * Cite the two handbooks in the file `exercises/literature/literature.tex`. * Ensure that the bibliography is listed. @@ -287,9 +293,6 @@ Setup for Zotero with Better BibTeX * Tools > Plugins > enable `Better BibTeX for Zotero` * export your library from Zotero, set `Better BibLaTex` as format, and set `keep updated` to true * save the library in your LaTeX project archive and use it as the `.bib`-file -* **TeXstudio**: - * Bibliography > set type to `BibLaTeX` - * Options > Configure TeXstudio > Generate > set standard for bibliography to `Biber` @slide(layout=extra-content-only) diff --git a/slides/packages.de.md b/slides/packages.de.md index 9d7515a..303a8eb 100644 --- a/slides/packages.de.md +++ b/slides/packages.de.md @@ -65,6 +65,12 @@ Für Präsentationen gibt es die Dokumentenklasse `beamer` sowie zahlreiche [Vor +@slide(layout=preview-only) + +@preview +![Eine ([etwas modernere](https://gitlab.cs.fau.de/i4/tex/i4neo)) `beamer`-Präsentation](svg/packages/beamer-example-grabs.jpg) + + @slide(layout=content-and-preview) @title @@ -103,7 +109,7 @@ child { node {home} ``` @preview -![](svg/chapter-03/relative-path-crop.svg) +![](svg/project-structure/relative-path-crop.svg) @slide(layout=content-and-preview) diff --git a/slides/packages.en.md b/slides/packages.en.md index 1786999..d2a7e0b 100644 --- a/slides/packages.en.md +++ b/slides/packages.en.md @@ -65,6 +65,12 @@ For slides, there is the `beamer` document class, as well as numerous [templates +@slide(layout=preview-only) + +@preview +![A ([more modern](https://gitlab.cs.fau.de/i4/tex/i4neo)) `beamer` example](svg/packages/beamer-example-grabs.jpg) + + @slide(layout=content-and-preview) @title @@ -103,7 +109,7 @@ child { node {home} ``` @preview -![](svg/chapter-03/relative-path-crop.svg) +![](svg/project-structure/relative-path-crop.svg) @slide(layout=content-and-preview) diff --git a/slides/project-structure.de.md b/slides/project-structure.de.md index 621228d..adedebb 100644 --- a/slides/project-structure.de.md +++ b/slides/project-structure.de.md @@ -79,6 +79,74 @@ Inhalt von Abschnitt 2. ![](svg/project-structure/hauptdatei-teile-crop.svg){.thin-padding} +@slide(layout=content-only) + +@title +Kompilieren des Projekts + +@content +* **Nur die Hauptdatei** wird kompiliert, um das fertige PDF-Dokument zu erhalten. +* ++ Fehlermeldungen enthalten dann Verweis, in welcher Unterdatei sie aufgetreten sind. +* ++ Die Unterdateien können wegen ihrer fehlenden Präambel nicht selbstständig kompiliert werden. + + +@slide(layout=task) + +@task-number +3 + +@title +Ein strukturiertes Projekt + +@content +::: {.box .warning} +**Schließt alle offenen Tabs** aus vorherigen Aufgaben. +::: + +Im Ordner `exercises/project-structure` findet ihr eine Datei namens `main.tex`. + +* Erstellt neue Dateien (z. B. `section1.tex` und `section2.tex` und verschiebt die Abschnitte in diese. +* Importiert die Fragmente anschließend mit Hilfe des `\input`-Befehls. +* Lagert die Präambel auf demselben Weg in eine eigene Datei aus. +* Schaut euch abschließend die Gesamtstruktur unseres Projektarchivs an, beginnend mit `main-exercises.tex` im Wurzelverzeichnis. Wie binden wir hier die einzelnen Abschnitte ein? + + +@slide(layout=extra-content-only) + +@title +PDF-Dokumente einbetten + +@content +Das Paket `pdfpages` erlaubt das Einbetten ganzer PDF-Dokumente. + +``` {.lang-tex .hljs} +\includepdf[pages={-}]{} +``` + +Weitere Parameter lassen mehrere Seiten in Kacheln nebeneinander erscheinen oder ändern die Ausrichtung zu Querformat. Die [Paket-Dokumentation](https://www.ctan.org/pkg/pdfpages) enthält eine abschließende Liste aller Möglichkeiten. + + +@slide(layout=extra-wide-content) + +@title +Makros + +@content +Manchmal ist es nützlich, oft genutzten Codes durch Makros zu vereinfachen. + +``` {.lang-tex .hljs} +\newcommand{\}[][]{} +``` + +Im Skript haben wir solche Makros unter anderem verwendet, um Abstände und Akronyme zu definieren (siehe `commands.tex` für weitere Beispiele): + +``` {.lang-tex .hljs} +\newcommand{\widefiguremargin}{-.22\textwidth} +\newcommand{\acro}[1]{\textsc{\lowercase{#1}}} +``` + +Es ist auch möglich, bestehende Befehle anzupassen. $\LaTeX$ erlaubt es sogar, Programmierkonstrukte wie Variablen, Verzweigungen und Schleifen zu nutzen. Für weitere Einblicke dient [dieses Kapitel des WikiBooks](https://en.wikibooks.org/wiki/LaTeX/Macros). + @slide(layout=content-and-preview-with-category) @category @@ -163,73 +231,6 @@ Dateipfade angeben 👣 -@slide(layout=content-only-with-category) - -@category -Demo - -@title -Kompilieren des Projekts - -@content -* **Nur die Hauptdatei** wird kompiliert, um das fertige PDF-Dokument zu erhalten. -* ++ Fehlermeldungen enthalten dann Verweis, in welcher Unterdatei sie aufgetreten sind. -* ++ Die Unterdateien können wegen ihrer fehlenden Präambel nicht selbstständig kompiliert werden. - - -@slide(layout=task) - -@task-number -3 - -@title -Ein strukturiertes Projekt - -@content -Im Ordner `exercises/project-structure` findet ihr eine Datei namens `main.tex`. - -* Erstellt neue Dateien (z. B. `section1.tex` und `section2.tex` und verschiebt die Abschnitte in diese. -* Importiert die Fragmente anschließend mit Hilfe des `\input`-Befehls. -* Lagert die Präambel auf demselben Weg in eine eigene Datei aus. -* Schaut euch abschließend die Gesamtstruktur unseres Projektarchivs an, beginnend mit `main-exercises.tex` im Wurzelverzeichnis. Wie binden wir hier die einzelnen Abschnitte ein? - - -@slide(layout=extra-content-only) - -@title -PDF-Dokumente einbetten - -@content -Das Paket `pdfpages` erlaubt das Einbetten ganzer PDF-Dokumente. - -``` {.lang-tex .hljs} -\includepdf[pages={-}]{} -``` - -Weitere Parameter lassen mehrere Seiten in Kacheln nebeneinander erscheinen oder ändern die Ausrichtung zu Querformat. Die [Paket-Dokumentation](https://www.ctan.org/pkg/pdfpages) enthält eine abschließende Liste aller Möglichkeiten. - - -@slide(layout=extra-wide-content) - -@title -Makros - -@content -Manchmal ist es nützlich, oft genutzten Codes durch Makros zu vereinfachen. - -``` {.lang-tex .hljs} -\newcommand{\}[][]{} -``` - -Im Skript haben wir solche Makros unter anderem verwendet, um Abstände und Akronyme zu definieren (siehe `commands.tex` für weitere Beispiele): - -``` {.lang-tex .hljs} -\newcommand{\widefiguremargin}{-.22\textwidth} -\newcommand{\acro}[1]{\textsc{\lowercase{#1}}} -``` - -Es ist auch möglich, bestehende Befehle anzupassen. $\LaTeX$ erlaubt es sogar, Programmierkonstrukte wie Variablen, Verzweigungen und Schleifen zu nutzen. Für weitere Einblicke dient [dieses Kapitel des WikiBooks](https://en.wikibooks.org/wiki/LaTeX/Macros). - @slide(layout=content-only) @title diff --git a/slides/project-structure.en.md b/slides/project-structure.en.md index 578881a..495e797 100644 --- a/slides/project-structure.en.md +++ b/slides/project-structure.en.md @@ -78,6 +78,74 @@ of section 2. ![](svg/project-structure/main-parts-crop.svg){.thin-padding} +@slide(layout=content-only) + +@title +Compiling the project + +@content +* **Only the main file** has to be compiled to get the complete PDF document. +* ++ Error messages include a reference to the corresponding subfile. +* ++ Subfiles cannot be compiled on their own as they don’t have a preamble. + + +@slide(layout=task) + +@task-number +3 + +@title +A structured project + +@content +::: {.box .warning} +**Close all open tabs** from previous tasks. +::: + +You will find a file named `main.tex` in the folder `exercises/project-structure`. + +* Put the sections of the file into separate files, named `section1.tex` and `section2.tex`. +* Include them using the `\input` command. +* Move the preamble to its own file in a similar fashion. +* Finally, have a look at the general project archive, starting from `main-exercises.tex` (in the root folder of the project archive). How do we include the different sections here? + + +@slide(layout=extra-content-only) + +@title +Embedding PDF documents + +@content +The `pdfpages` package allows for embedding entire PDF documents. + +``` {.lang-tex .hljs} +\includepdf[pages={-}]{} +``` + +Further options make multiple pages appear in tiles and change the orientation to landscape, among other things. See the [package documentation](https://www.ctan.org/pkg/pdfpages) for a complete list. + + +@slide(layout=extra-wide-content) + +@title +Macros + +@content +It may be helpful to specify custom macros for often-used code. + +``` {.lang-tex .hljs} +\newcommand{\}[][]{} +``` + +In the script, we used these macros for margins and acronyms (see `commands.tex` for more examples): + +``` {.lang-tex .hljs} +\newcommand{\widefiguremargin}{-.22\textwidth} +\newcommand{\acro}[1]{\textsc{\lowercase{#1}}} +``` + +It is also possible to customize existing commands. $\LaTeX$ even allows you to use programming patterns like variables, conditionals, and loops. To learn more, have a look at [this WikiBook chapter](https://en.wikibooks.org/wiki/LaTeX/Macros). + @slide(layout=content-and-preview-with-category) @category @@ -159,75 +227,6 @@ Specifying file paths 👣 ![](svg/project-structure/relative-path-transitive-english-crop.svg) - -@slide(layout=content-only-with-category) - -@category -Demo - -@title -Compiling the project - -@content -* **Only the main file** has to be compiled to get the complete PDF document. -* ++ Error messages include a reference to the corresponding subfile. -* ++ Subfiles cannot be compiled on their own as they don’t have a preamble. - - -@slide(layout=task) - -@task-number -3 - -@title -A structured project - -@content -You will find a file named `main.tex` in the folder `exercises/project-structure`. - -* Put the sections of the file into separate files, named `section1.tex` and `section2.tex`. -* Include them using the `\input` command. -* Move the preamble to its own file in a similar fashion. -* Finally, have a look at the general project archive, starting from `main-exercises.tex` (in the root folder of the project archive). How do we include the different sections here? - - -@slide(layout=extra-content-only) - -@title -Embedding PDF documents - -@content -The `pdfpages` package allows for embedding entire PDF documents. - -``` {.lang-tex .hljs} -\includepdf[pages={-}]{} -``` - -Further options make multiple pages appear in tiles and change the orientation to landscape, among other things. See the [package documentation](https://www.ctan.org/pkg/pdfpages) for a complete list. - - -@slide(layout=extra-wide-content) - -@title -Macros - -@content -It may be helpful to specify custom macros for often-used code. - -``` {.lang-tex .hljs} -\newcommand{\}[][]{} -``` - -In the script, we used these macros for margins and acronyms (see `commands.tex` for more examples): - -``` {.lang-tex .hljs} -\newcommand{\widefiguremargin}{-.22\textwidth} -\newcommand{\acro}[1]{\textsc{\lowercase{#1}}} -``` - -It is also possible to customize existing commands. $\LaTeX$ even allows you to use programming patterns like variables, conditionals, and loops. To learn more, have a look at [this WikiBook chapter](https://en.wikibooks.org/wiki/LaTeX/Macros). - - @slide(layout=content-only) @title diff --git a/slides/references-and-footnotes.de.md b/slides/references-and-footnotes.de.md index 3b1f40a..b4e2f22 100644 --- a/slides/references-and-footnotes.de.md +++ b/slides/references-and-footnotes.de.md @@ -13,10 +13,6 @@ Referenzen und Fußnoten Fußnoten 📎 @content -``` {.hljs .lang-tex} -\usepackage{hyperref} -``` - Die Nummerierung erfolgt automatisch und ist fortlaufend, unabhängig davon, ob ein neuer Abschnitt beginnt. ``` {.hljs .lang-tex} @@ -145,8 +141,8 @@ Dinge, die zu beachten sind Fußnoten einfügen @content -* Verschiebt den Text *„released in September 2023“* in der Datei `exercises/footnotes/footnotes.tex` in eine **Fußnote**. -* Fügt zusätzlich eine **klickbare URL**, die zur Download-Seite des Java Development Kit führt (`https://www.oracle.com/java/technologies/javase-downloads.html`), als Fußnote ein. +* Verschiebt den Text *„as of 2025“* in der Datei `exercises/footnotes/footnotes.tex` in eine **Fußnote**. +* Fügt zusätzlich eine **klickbare URL** bei, die zum zugehörigen Blogpost (https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/) führt. @@ -161,7 +157,7 @@ Referenzen einfügen @content * Ersetzt im Text in der Datei `references.tex` im Ordner `exercises/references` *In the figure* und *The following source code listing* durch eine **Referenz** auf das Bild bzw. auf das Quelltext-Listing. * Nutzt dafür den Befehl `\Cref`. -* Achtet darauf, zuerst **Labels** für die Elemente, die ihr referenzieren wollt, zu vergeben. +* Achtet darauf, zuerst **Labels** und **Captions** für die Elemente, die ihr referenzieren wollt, zu vergeben. * Bei **Quelltext-Listings** funktioniert die Angabe von Labels und Captions leicht anders. Nutzt euer bisheriges Wissen und das Internet, um herauszufinden, wie ihr den Befehl `\lstinputlisting` anpassen müsst, um beides zu vergeben. diff --git a/slides/references-and-footnotes.en.md b/slides/references-and-footnotes.en.md index 57b6234..602e174 100644 --- a/slides/references-and-footnotes.en.md +++ b/slides/references-and-footnotes.en.md @@ -13,14 +13,8 @@ References and footnotes Footnotes 📎 @content -``` {.hljs .lang-tex} -\usepackage{hyperref} -``` - Footnotes are automatically numbered consecutively, independent of sections. -(Here, `hyperref` is used for the `\url` command, it is not necessary for footnotes per se.) - ``` {.hljs .lang-tex} The wild boar (\textit{Sus scrofa}), also known as the wild swine, common wild pig, @@ -44,7 +38,7 @@ Cross-references Manually (just don’t!) ``` {.hljs .lang-tex} -As you can see in figure 23, … +As you can see in Figure 23, … ``` Using the `\ref` command: @@ -148,9 +142,8 @@ Things to consider Inserting footnotes @content -* Make the text *“released in September 2023”* in file `exercises/footnotes/footnotes.tex` appear as a **footnote**. -* Additionally, insert a **clickable URL** that leads to the download page for the Java Development Kit (`https://www.oracle.com/java/technologies/javase-downloads.html`). - +* Make the text *“as of 2025”* in file `exercises/footnotes/footnotes.tex` appear as a **footnote**. +* Additionally, reference the **corresponding blog post** in the footnote: [https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/](https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/) @slide(layout=task) @@ -163,8 +156,8 @@ Inserting references @content * In file `exercises/references/references.tex`, replace *In the figure* and *The following source code listing* by **references** to the figure and to the source code listing. * Use the command `\Cref` for the references. -* Make sure to add **labels** to the elements that you want to create a reference for. -* For source code listings, adding labels and captions is a bit different. Try to apply the knowledge you gained so far to retrieve the correct version of the `\lstinputlisting` command. Use the Internet, if necessary. +* Make sure to add **labels** and **captions** to the elements that you want to create a reference for. +* For source code listings, adding labels and captions is a bit different. Try to apply the knowledge you gained so far to retrieve the correct version of the `\lstinputlisting` command. Use the Internet, if necessary. @slide(layout=extra-content-and-preview) diff --git a/slides/tables.de.md b/slides/tables.de.md index 9d4c126..babbc15 100644 --- a/slides/tables.de.md +++ b/slides/tables.de.md @@ -21,10 +21,10 @@ Für typografisch schöne Tabellen nutzen wir das Paket `booktabs`. ``` {.hljs .lang-tex} \begin{table}[] + \caption{} \begin{tabular}{} % Tabelleninhalt \end{tabular} - \caption{} \end{table} ``` @@ -106,9 +106,9 @@ Die gesamte Tabelle \toprule Sprache & Autor & Erscheinungsjahr & Dateiendung \\ \midrule - C++ & Bjarne Stroustrup & 1985 & .cpp \\ - Java & James Gosling & 1998 & .java \\ - Python & Guido van Rossum & 1991 & .py \\ + C++ & Bjarne Stroustrup & 1985 & .cpp \\ + Java & James Gosling & 1998 & .java \\ + Python & Guido van Rossum & 1991 & .py \\ \bottomrule \end{tabular} \end{table} @@ -160,9 +160,9 @@ Tabellen, die über eine Seite hinaus gehen, werden von `tabular` einfach abgesc ``` {.hljs .lang-tex} \begin{longtable}{} - % Tabelleninhalt - \caption{} + \caption{} \label{