257 lines
9.5 KiB
Markdown
257 lines
9.5 KiB
Markdown
|
# Codesys ST Handbuch
|
|||
|
|
|||
|

|
|||
|
|
|||
|
**Version:** [VERSION](VERSION)
|
|||
|
|
|||
|
## Inhalt
|
|||
|
|
|||
|
- [Codesys ST Handbuch](#codesys-st-handbuch)
|
|||
|
- [Inhalt](#inhalt)
|
|||
|
- [Infos](#infos)
|
|||
|
- [Struktur](#struktur)
|
|||
|
- [Installation und Build](#installation-und-build)
|
|||
|
- [Nötige Software für den Build](#nötige-software-für-den-build)
|
|||
|
- [Schriftarten](#schriftarten)
|
|||
|
- [Templates](#templates)
|
|||
|
- [PDF](#pdf)
|
|||
|
- [eBook (epub)](#ebook-epub)
|
|||
|
- [DOCX (Office/ Word)](#docx-office-word)
|
|||
|
- [Build](#build)
|
|||
|
- [Erklärung zum Makefile](#erklärung-zum-makefile)
|
|||
|
- [Struktur beim schreiben des Buchs](#struktur-beim-schreiben-des-buchs)
|
|||
|
- [Schreiben mit VS-Code](#schreiben-mit-vs-code)
|
|||
|
- [Projektinterne Tastenkombinationen mit `.vscode/keybindings.json`](#projektinterne-tastenkombinationen-mit-vscodekeybindingsjson)
|
|||
|
- [Zweck](#zweck)
|
|||
|
- [Einbindung in Visual Studio Code](#einbindung-in-visual-studio-code)
|
|||
|
- [🔧 Vorgehen](#-vorgehen)
|
|||
|
- [Empfehlung](#empfehlung)
|
|||
|
- [Hinweis zur Konsistenz](#hinweis-zur-konsistenz)
|
|||
|
- [Nützliche Links und Tipps für den Author](#nützliche-links-und-tipps-für-den-author)
|
|||
|
- [Lizenz](#lizenz)
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Infos
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Struktur
|
|||
|
|
|||
|
```plaintext
|
|||
|
|
|||
|
📁 . #
|
|||
|
├── 📁 build # Ausgabeordner (wird vom Build-Prozess befüllt)
|
|||
|
├── 📁 manuscript #
|
|||
|
│ ├── 📄 00_deckblatt.md #
|
|||
|
│ ├── 📄 05_vorwort.md #
|
|||
|
│ ├── 📄 10_kapitel1.md #
|
|||
|
├── 📁 media # Bilder, Grafiken, Diagramme usw. NICHT im Manuskript enthalten sind.
|
|||
|
│ ├── 📁 logo #
|
|||
|
│ │ ├── 📄 logo.png #
|
|||
|
│ └── 📄 favicon.ico #
|
|||
|
├── 📁 metadata # Metadaten für eBook, Titelblatt, Author etc
|
|||
|
│ ├── 📄 author.txt #
|
|||
|
│ └── 📄 ebook.yaml #
|
|||
|
├── 📁 styles # Pandoc-Templates, LaTeX-Vorlagen, CSS
|
|||
|
│ ├── 📄 ebook-template.tex #
|
|||
|
│ ├── 📄 ebook.css #
|
|||
|
│ ├── 📄 print-template.tex #
|
|||
|
│ └── 📄 reference.docx #
|
|||
|
├── 📁 tools #
|
|||
|
│ ├── 📄 bmp-emojis.md #
|
|||
|
│ ├── 📄 cli-emojis.md #
|
|||
|
│ ├── 📄 dev-setup.sh #
|
|||
|
│ ├── 📄 gitcopy.bat #
|
|||
|
│ └── 📄 tocgen.py #
|
|||
|
├── 📄 .gitignore #
|
|||
|
├── 📄 CHANGELOG.md #
|
|||
|
├── 📄 desktop.ini #
|
|||
|
├── 📄 LICENSE # Lizenz für das Buch (z. B. CC-BY)
|
|||
|
├── 📄 Makefile # Automatisierter Build-Prozess mit Pandoc etc.
|
|||
|
├── 📄 README.md # Diese Datei - Erklärung zum Build des Buchs
|
|||
|
└── 📄 VERSION # Paketversion (ohne Zeilenumbruch einzeilig 0.0.0)
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Installation und Build
|
|||
|
|
|||
|
### Nötige Software für den Build
|
|||
|
|
|||
|
**Hinweis: TeX unter Windows?**
|
|||
|
|
|||
|
Obwohl es grundsätzlich möglich ist, TeX unter Windows zu installieren – und auch entsprechende Distributionen wie MiKTeX oder TeX Live für Windows existieren – rate ich dringend davon ab, auf diesem Weg zu starten.
|
|||
|
|
|||
|
Für einen stabilen und reproduzierbaren Build-Prozess empfiehlt sich stattdessen der Einsatz eines Linux-Systems. Wenn du kein dediziertes Linux verwendest, ist das Windows Subsystem for Linux (`WSL`) eine ausgezeichnete Alternative.
|
|||
|
|
|||
|
>Voraussetzung:
|
|||
|
>Du solltest mit `apt` umgehen können und wissen, dass ein `update` vor dem `install` obligatorisch ist.
|
|||
|
|
|||
|
Falls der Build trotzdem scheitert oder du dir den Aufwand sparen möchtest, lade dir einfach die fertige PDF-Version herunter – oder bestelle dir direkt ein gedrucktes Exemplar des Buchs.
|
|||
|
|
|||
|
- **✅ Pandoc installieren:**
|
|||
|
|
|||
|
```sh
|
|||
|
sudo apt install pandoc
|
|||
|
```
|
|||
|
|
|||
|
- **✅ Empfohlene Installation: TeX Live Full** (ca.8GB)
|
|||
|
|
|||
|
```sh
|
|||
|
sudo apt install texlive-full
|
|||
|
```
|
|||
|
|
|||
|
Wenn NICHT `texlive-full`, dann aber:
|
|||
|
|
|||
|
- Zusätzlich deutsche Sprache (falls babel fehlt):
|
|||
|
|
|||
|
```bash
|
|||
|
sudo apt install texlive-lang-german
|
|||
|
```
|
|||
|
|
|||
|
Ich empfehle aber dringend `texlive-full` zu installieren da man erfahrungsgemäss am Anfang auf viele Fehler mit fehlenden Abhängigkeiten stößt wenn man Templates testet.
|
|||
|
|
|||
|
- **✅ Make installieren:**
|
|||
|
|
|||
|
Make oder besser die Anwendung `make` wird benötigt um die Erstellung der Ziele wie PDF zu automatisiern.
|
|||
|
Dafür liegt auch das vorbereitete Skript `Makefile` im Hauptverzeichnis. Die ist nur optional und man kann es selbstverständlich auch manuell durchführen.
|
|||
|
|
|||
|
```sh
|
|||
|
sudo apt install make
|
|||
|
```
|
|||
|
|
|||
|
Ich verwende Version:
|
|||
|
|
|||
|
```sh
|
|||
|
> make -v
|
|||
|
GNU Make 4.3
|
|||
|
Built for x86_64-pc-linux-gnu
|
|||
|
```
|
|||
|
|
|||
|
#### Schriftarten
|
|||
|
|
|||
|
```sh
|
|||
|
sudo apt install fonts-noto-color-emoji fonts-firacode
|
|||
|
sudo apt install fonts-symbola
|
|||
|
```
|
|||
|
|
|||
|
### Templates
|
|||
|
|
|||
|
#### PDF
|
|||
|
|
|||
|
#### eBook (epub)
|
|||
|
|
|||
|
#### DOCX (Office/ Word)
|
|||
|
|
|||
|
### Build
|
|||
|
|
|||
|
Schau mal ins [`Makefile`](./Makefile), dort findest Du einige Kandidaten um aus dem vorliegenden Markdown Manuskript eine entsprechende Version zu konvertieren. Es stehen zum aktuellen Zeitpunkt folgende zur Verfügung:
|
|||
|
|
|||
|
```sh
|
|||
|
make pdf
|
|||
|
make epub
|
|||
|
make docx
|
|||
|
```
|
|||
|
|
|||
|
Du musst im Kopfbereich der Datei zwingend ein paar Einstellungen vornehmen:
|
|||
|
|
|||
|
| Parameter | Beschreibung |
|
|||
|
|-------------------------------------------|-------------------------------------------------------------|
|
|||
|
| `# === Allgemeine Konfiguration ===` | |
|
|||
|
| `TITLE := rust-tutorial` | Dateiname ohne Erweiterung für die Ausgabe nach dem Build |
|
|||
|
| `MANUSCRIPT := manuscript` | |
|
|||
|
| `MANUSCRIPT := manuscript` | |
|
|||
|
| `OUTPUT := build` | |
|
|||
|
| `METADATA := metadata/ebook.yaml` | |
|
|||
|
| `CSS := styles/ebook.css` | |
|
|||
|
| `TEX_EBOOK := styles/ebook-template.tex` | |
|
|||
|
| `TEX_PRINT := styles/print-template.tex` | |
|
|||
|
| `LOGO := media/logo/logo.png` | Logo für den epub Build |
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
#### Erklärung zum Makefile
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Struktur beim schreiben des Buchs
|
|||
|
|
|||
|
1. Kapitel sind in Dateien die jeweils von 00 aufsteigend sortiert sind. Pandoc baut sie aufsteigend ins Buch.
|
|||
|
Kapitel 1 zB in `10_kapitel1.md`. Die vorstehende 10 steht für 1. Sollte zB Kapitel 1.1 hinzukommen,
|
|||
|
dann man diese `11_kapitel1.md` benennen. Hoffe es ist verständlich.
|
|||
|
2. Bilder sind nach Kapitel und fortlaufender Nummer sowie einem Hinweis benannt.
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Schreiben mit VS-Code
|
|||
|
|
|||
|
### Projektinterne Tastenkombinationen mit `.vscode/keybindings.json`
|
|||
|
|
|||
|
Zur Vereinfachung und Vereinheitlichung der Bedienung ist in diesem Projekt eine Datei `.vscode/keybindings.json` enthalten. Diese Datei definiert projektweit gültige Tastenkombinationen, die bestimmte Aufgaben in Visual Studio Code auslösen – beispielsweise den PDF-Build aus Markdown heraus.
|
|||
|
|
|||
|
> ⚠ Diese Datei ist **verpflichtender Bestandteil des Projekts** und muss bei jeder lokalen Arbeitskopie vorhanden sein.
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
#### Zweck
|
|||
|
|
|||
|
Die `keybindings.json` im Projektordner ermöglicht es, projektbezogene Aktionen wie das Erzeugen von PDF-Dokumenten über eine einfache Tastenkombination aufzurufen. Sie ergänzt die zentrale Datei `tasks.json`, in der die ausführbaren Aktionen definiert sind.
|
|||
|
|
|||
|
Ein typischer Anwendungsfall ist die Kombination mit einem WSL-basierten Build-Befehl:
|
|||
|
|
|||
|
```json
|
|||
|
{
|
|||
|
"key": "ctrl+alt+p",
|
|||
|
"command": "workbench.action.tasks.runTask",
|
|||
|
"args": "Markdown → PDF (Pandoc via WSL)",
|
|||
|
"when": "editorLangId == markdown"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Diese Tastenkombination führt den Build-Task `Markdown → PDF (Pandoc via WSL)` aus, der wiederum intern `wsl make pdf` ausführt.
|
|||
|
|
|||
|
#### Einbindung in Visual Studio Code
|
|||
|
|
|||
|
Visual Studio Code erlaubt von Haus aus keine automatische Nutzung Projektinterne `keybindings.json`-Dateien. Daher muss der Inhalt aus `.vscode/keybindings.json` **manuell** in das globale Benutzerprofil übernommen werden:
|
|||
|
|
|||
|
#### 🔧 Vorgehen
|
|||
|
|
|||
|
1. Öffne in VS Code die Tastenkombination `Strg + Shift + P`
|
|||
|
2. Wähle:
|
|||
|
`Preferences: Open Keyboard Shortcuts (JSON)`
|
|||
|
3. Kopiere den Inhalt aus der Datei `.vscode/keybindings.json` ins geöffnete Profil
|
|||
|
4. Speichern, fertig
|
|||
|
|
|||
|
> 💬 Alternativ kann die Datei bei einer Neuinstallation auch einfach in den globalen Pfad kopiert werden. Unter Windows befindet sich dieser unter `%APPDATA%\Code\User\keybindings.json`.
|
|||
|
|
|||
|
#### Empfehlung
|
|||
|
|
|||
|
Es wird empfohlen, regelmäßig zu prüfen, ob die Projektinterne `keybindings.json` aktualisiert wurde (z. B. durch einen Pull). Neue Funktionen oder Workflows können dort neue Tastenkombinationen erhalten.
|
|||
|
|
|||
|
#### Hinweis zur Konsistenz
|
|||
|
|
|||
|
Um eine konsistente Bedienbarkeit zu gewährleisten, sollte **ausschließlich die im Projekt enthaltene `keybindings.json` verwendet werden**. Eigene globale Kürzel sollten nach Möglichkeit vermieden oder dokumentiert angepasst werden.
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Nützliche Links und Tipps für den Author
|
|||
|
|
|||
|
- **Zeichen Testen**
|
|||
|
-> <https://r12a.github.io/uniview/>
|
|||
|
|
|||
|
Oder `hexdump` aus:
|
|||
|
|
|||
|
```sh
|
|||
|
sudo apt install bsdmainutils
|
|||
|
```
|
|||
|
|
|||
|
---
|
|||
|
|
|||
|
## Lizenz
|
|||
|
|
|||
|
**(C) 2025 - Adam Skotarczak**
|
|||
|
|
|||
|
---
|