Skip to content

03 Vorlage anpassen

Rene Hampölz edited this page Mar 25, 2023 · 15 revisions

Inhaltsverzeichnis

Einführung

Sie können auf der Grundlage dieses Projekts Ihre eigene LaTeX-Vorlage erstellen, alles anpassen und eigene Funktionen hinzufügen und dann Ihre Dokumente darauf aufbauen, als ob Sie dieses Projekt als Vorlage verwenden würden. Ihr Dokument wird dann basierend auf der von Ihnen erstellten Vorlage aktualisiert, und Sie können Ihre Vorlage basierend auf dieser Vorlage aktualisieren.

  1. Erstellen Sie ein neues Repository auf GitHub und klonen Sie es
  2. Richten Sie ein neues Dokument in Ihrem Repo ein, indem Sie einen der Befehle im Repo-Ordner ausführen:
    # Windows:
    curl -s https://raw.githubusercontent.com/hampoelz/HTL_LaTeX-Template/main/scripts/update.bat -o ..\update.bat && ..\update.bat && del ..\update.bat
    
    # Linux:
    curl -s https://raw.githubusercontent.com/hampoelz/HTL_LaTeX-Template/main/scripts/update.sh -o ../update.sh && bash ../update.sh && rm ../update.sh
  3. Ändern Sie einige Konfigurationen in den Installations- und Aktualisierungsskripten wie unten beschrieben
  4. Committen und Pushen Sie die Änderungen

Erforderliche Änderungen

ℹ️ Notiz

In den erforderlichen Schritten müssen Sie lediglich HTL_LaTeX-Template durch <Benutzername>/<Repo_Name> ersetzen, was Ihre eigenen Informationen über das neu erstellte Repository sind. In meinem Fall wäre es zum Beispiel hampoelz/CustomTemplate.

Datei "scripts/install.bat"

(für Windows-Nutzung)

Aktualisieren Sie die Variable gh_repo (Zeile 11):

diff -u scripts/install.bat
@@ -10,4 +10,4 @@
  10
- 11 set "gh_repo=hampoelz/LaTeX-Template"
+ 11 set "gh_repo=<Benutzername>/<Repo_Name>"
  12 set "remote_branch=main"
  13

Datei "scripts/update.bat"

(für Windows-Nutzung)

Aktualisieren Sie die Variable gh_repo (Zeile 13):

diff -u scripts/update.bat
@@ -12,4 +12,4 @@
  12
- 13 set "gh_repo=hampoelz/LaTeX-Template"
+ 13 set "gh_repo=<Benutzername>/<Repo_Name>"
  14 set "remote_branch=main"
  15

Datei "scripts/update.sh"

(für Linux-Nutzung)

Aktualisieren Sie die Variable gh_repo (Zeile 13):

diff -u scripts/update.sh
@@ -12,4 +12,4 @@
  12
- 13 gh_repo="hampoelz/LaTeX-Template"
+ 13 gh_repo="<Benutzername>/<Repo_Name>"
  14 remote_branch="main"
  15

Optionale Änderungen

  • ignore_SHAs: Commits aus der Vorlage, die beim Aktualisieren oder Erstellen eines Dokuments nicht übernommen werden.
  • commit_msg: Commit-Nachricht, die verwendet wird, wenn Änderungen aus der Vorlage in das Dokument übernommen werden.
  • commit_descr: Beschreibung welche zur Commit-Nachricht hinzugefügt wird.
  • remote_branch: Branch des Vorlagen-Repositorys, aus dem Änderungen gezogen werden.

Weitere Informationen und eine ausführliche Dokumentation dazu finden Sie im originalen hampoelz/LaTeX-Template Repository unter wiki/03-Customize-template#optional-changes.

Aktualisierung

Um Ihre benutzerdefinierte Vorlage mit den neuesten Änderungen aus diesem Projekt zu aktualisieren, führen Sie einen der folgenden Befehle im Stammordner Ihrer Vorlage aus:

# Windows:
curl -s https://raw.githubusercontent.com/hampoelz/HTL_LaTeX-Template/main/scripts/update.bat -o ..\update.bat && ..\update.bat && del ..\update.bat

# Linux:
curl -s https://raw.githubusercontent.com/hampoelz/HTL_LaTeX-Template/main/scripts/update.sh -o ../update.sh && bash ../update.sh && rm ../update.sh

Verwendung

Kurz gesagt, können Sie dasselbe Erste-Schritte Tutorial für Ihre benutzerdefinierte Vorlage verwenden, Sie müssen nur hampoelz/HTL_LaTeX-Template durch <Benutzername>/<Repo_Name> in den Befehlen ersetzen.

Als Beispiel im Tutorial Automatische Einrichtung (Windows):

- cmd /c curl -s https://raw.githubusercontent.com/hampoelz/HTL_LaTeX-Template/main/scripts/install.bat -o "LaTeXDocument.bat" && ".\LaTeXDocument.bat"
+ cmd /c curl -s https://raw.githubusercontent.com/<Benutzername>/<Repo_Name>/main/scripts/install.bat -o "LaTeXDocument.bat" && ".\LaTeXDocument.bat"

Empfehlungen

Bei den folgenden Abschnitten handelt es sich lediglich um Empfehlungen. Sie können also die Beispiele an Ihre eigenen Bedürfnisse anpassen.

Branch-Schutz

Der Updater verwendet die Commit-SHAs Ihrer Vorlage, um zu ermitteln, wie aktuell Ihr Dokument ist. Wenn Sie den Commit-Verlauf ändern, zum Beispiel durch ein Rebase, funktioniert der Updater nicht wie vorgesehen.

Um solche Probleme zu vermeiden, wird empfohlen, Ihren Haupt-Branch zu schützen, damit Änderungen nur durch Pull-Requests zugelassen werden:

  1. Öffnen Sie die Seite Settings->Branches des Github-Repositorys Ihrer Vorlage
  2. Fügen Sie eine neue Regel für Ihren Haupt-Branch hinzu und aktivieren Sie die folgenden Optionen:
    • Require a pull request before merging
    • Require status checks to pass before merging (wählen Sie den status check Build aus)
      • Require branches to be up to date before merging
    • Do not allow bypassing the above settings

Weitere Informationen zum Branch-Schutz finden Sie unter https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/about-protected-branches

Squash merging

Um unnötige Commits zu vermeiden, sollten die Pull-Requests mit Squash zusammengeführt werden, um alle Commits aus dem Head-Zweig in einem einzigen Commit im Base-Zweig zu kombinieren. Seien Sie sich jedoch bewusst, dass dadurch ein neuer Commit mit einem neuen SHA erzeugt wird. Dies ist jedoch nur eine Empfehlung und Sie sollten selbst entscheiden, welche Merge-Strategie für jeden einzelnen Merge am sinnvollsten ist.

Um nicht versehentlich eine andere Zusammenführungsoption zu verwenden, können Sie nur Squash-Zusammenführungen zulassen:

  1. Öffnen Sie die Seite Settings des Github-Repositorys Ihrer Vorlage
  2. Aktivieren/Deaktivieren Sie die folgenden Optionen im Abschnitt "Pull Requests":
    • Allow merge commits
    • Allow squash merging
      • Default to pull request title and commit details
    • Allow rebase merging

Wenn Sie Ihre Vorlage aktualisieren, stellen Sie sicher, dass Sie die SHAs der übernommenen Commits nicht aus der Commit-Nachricht entfernen! Dies würde dazu führen, dass der Updater nicht wie vorgesehen funktioniert.