# Vorlage eBook ![Buch-Logo](./media/logo/logo.png) ## Inhalt - [Vorlage eBook](#vorlage-ebook) - [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) - [=== CSS-Datei für das eBook ===](#-css-datei-für-das-ebook-) - [=== LaTeX-Vorlage für das eBook ===](#-latex-vorlage-für-das-ebook-) - [=== LaTeX-Vorlage für den Druck ===](#-latex-vorlage-für-den-druck-) - [=== Logo für das eBook ===](#-logo-für-das-ebook-) - [=== Pfad zu Hilfswerkzeugen ===](#-pfad-zu-hilfswerkzeugen-) - [=== LaTeX Geometrie-Einstellungen (z.B. A5-Papier) ===](#-latex-geometrie-einstellungen-zb-a5-papier-) - [=== Schriftart für LaTeX ===](#-schriftart-für-latex-) - [=== Python Index für make toc ===](#-python-index-für-make-toc-) - [=== Verzeichnistiefe im eBook ===](#-verzeichnistiefe-im-ebook-) - [](#) - [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 automatisieren. 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 in der config.mk zwingend ein paar Einstellungen vornehmen: : Table with multiline cells :--------------------------: | **Variable** | **Funktion** | |--------------------------------------------|-------------------------------------------| | `TITLE := Vorlage_eBook` | Titel des eBooks | | `MANUSCRIPT := manuscript` | Verzeichnis mit den Markdown-Dateien | | `OUTPUT := build` | Ausgabeordner für Builds | | `METADATA := metadata/ebook.yaml` | Metadaten für das eBook | | `EXCLUDE_prod := \` `$(MANUSCRIPT)/00_deckblatt.md \` | Dateien auslassen im MODE prod | $(MANUSCRIPT)/00_Deckblatt.md \ $(MANUSCRIPT)/99_test.md # === CSS-Datei für das eBook === CSS := styles/ebook.css # === LaTeX-Vorlage für das eBook === TEX_EBOOK := styles/ebook-template.tex # === LaTeX-Vorlage für den Druck === TEX_PRINT := styles/print-template.tex # === Logo für das eBook === LOGO := media/logo/logo.png # === Pfad zu Hilfswerkzeugen === TOOLPATH := tools # === LaTeX Geometrie-Einstellungen (z.B. A5-Papier) === GEOMETRY := geometry:a4paper # === Schriftart für LaTeX === FONT := Noto Sans CJK SC # === Python Index für make toc === INDEXFILE := INHALT # === Verzeichnistiefe im eBook === TOCDEPTH := 3 # --- #### 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** -> Oder `hexdump` aus: ```sh sudo apt install bsdmainutils ``` --- ## Lizenz **(C) 2025 - Adam Skotarczak** ---