Compare commits

..

No commits in common. "master" and "feat-AddTemplates" have entirely different histories.

32 changed files with 163 additions and 407 deletions

View File

@ -26,9 +26,9 @@ help:
@echo 'Änderungswünsche werden ausschließlich via issue und pullrequest ' @echo 'Änderungswünsche werden ausschließlich via issue und pullrequest '
@echo 'Usage: ' @echo 'Usage: '
@echo ' make pdf generate a PDF file ' @echo ' make pdf generate a PDF file '
@echo ' make spellcheck checks the output for misspelled words' @echo ' make spellcheck checks the output for misspelled words '
@echo ' '
@echo ' ' @echo ' '
@echo '
# Helper Targets # Helper Targets
@ -47,21 +47,9 @@ build-stage:
@echo "Merging style files into the staging directory" @echo "Merging style files into the staging directory"
@rsync -av $(STYLEDIR)/ $(STAGINGDIR)/style --quiet @rsync -av $(STYLEDIR)/ $(STAGINGDIR)/style --quiet
# Prüfen auf Dateien mit Unterstrichen im Namen compile-pdf:
@echo "Checking for files containing underscores in $(STAGINGDIR)..."
@files=$$(find $(STAGINGDIR) -type f -name '*_*'); \
if [ -n "$$files" ]; then \
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
echo "WARNING: Found files with underscores:"; \
echo " -> $$files"; \
echo "These files are very likely to cause issues during the build process"; \
echo "Remove or rename them to build the thesis safely"; \
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
fi
compile-output:
# Bauen der Arbeit aus dem staging verzeichnis heraus # Bauen der Arbeit aus dem staging verzeichnis heraus
@echo "Compiling the thesis into: $(OUTPUTFILE)" @echo "Compiling the thesis into the pdf: $(OUTPUTFILE)"
# Builden mit pandoc. Als Basisverzeichnis springen wir ins staging. # Builden mit pandoc. Als Basisverzeichnis springen wir ins staging.
# Damit sollten alle relativen Links stimmen # Damit sollten alle relativen Links stimmen
@ -108,16 +96,7 @@ remove-stage:
# Targets which are intended to be used directly # Targets which are intended to be used directly
spellcheck: build-stage do-spellcheck remove-stage spellcheck: build-stage do-spellcheck remove-stage
# Erzeugen einer PDF Datei pdf: build-stage compile-pdf remove-stage
pdf: build-stage compile-output remove-stage
# Ziel für die Erzeugung einer .tex Datei
tex: OUTPUTFILE := $(OUTPUTFILE).tex
tex: build-stage compile-output remove-stage
clean:
# Remove the staging directory
@rm -rf $(STAGINGDIR)
# Special Targets # Special Targets
.PHONY: help pdf clean .PHONY: help pdf clean

188
README.md
View File

@ -27,7 +27,7 @@ Wenn der HTL eigene GIT-Server verwendet wird, brauchen Sie die Tools nicht unbe
## Windows ## Windows
Wenn man Windows 10 oder Windows 11 als primäres Betriebssystem verwendet hat man zwei Möglichkeiten um zu einer Linux Umgebung zu kommen: Wenn man Windows 10 als primäres Betriebssystem verwendet hat man zwei Möglichkeiten um zu einer Linux Umgebung zu kommen:
### VM installieren ### VM installieren
Installation einer virtuellen Maschine auf der ein Linux läuft (z.B: mit [HyperV](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v), [VmWare](https://www.vmware.com/at/products/workstation-player.html), [VirtualBox](https://www.virtualbox.org/) oder einem anderen Virtualisierer) -> Dann erhält man eine VM welche man zum bearbeiten der VM extra starten muss Installation einer virtuellen Maschine auf der ein Linux läuft (z.B: mit [HyperV](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v), [VmWare](https://www.vmware.com/at/products/workstation-player.html), [VirtualBox](https://www.virtualbox.org/) oder einem anderen Virtualisierer) -> Dann erhält man eine VM welche man zum bearbeiten der VM extra starten muss
@ -57,13 +57,36 @@ $ sudo apt-get install git build-essential make-guile texlive-full pandoc pandoc
Bei einer englischen Diplomarbeit muss außerdem entweder das Paket `hunspell-en-gb` oder `hunspell-en-us` installiert werden. Bei einer englischen Diplomarbeit muss außerdem entweder das Paket `hunspell-en-gb` oder `hunspell-en-us` installiert werden.
## Alternative platformen
Sie können die Diplomarbeit auch mit Hilfe von Docker oder Github WOrkflow bauen. Nähere Details dazu finden Sie im Verzeichnis `tools`.
# Grundlegende Schritte # Grundlegende Schritte
## Automatisches erstellen einer Diplomarbeit
Um ein privates GIT-Repository mit der HTLLE-DA-Vorlage anzulegen oder diese zu einem bereits bestehenden GIT-Repository in einem Unterverzeichnis hinzuzufügen, können Sie folgenden [Link](https://itsp.htl-leoben.at/ci/job/HTLLE-Diplomarbeit%20Erstelle%20Repository%20mit%20Template/build?delay=0sec) verwenden (ggf. mit LDAP Benutzername und Passwort z.B.: "1911wit00" anmelden).
Das Repository muss dem eingeloggten Benutzer gehören bzw. wird es für diesen erstellt.
- `REPOSITORY_NAME` setzen Sie bitte den Namen Ihres bereits bestehenden oder neuen Repositories (z.B.: "Diplomarbeit")
- `GIT_PATH` hier können Sie ein Unterverzeichnis in GIT für Ihre Arbeit angeben
Sie bekommen anschließend eine E-Mail an Ihre Office365 Adresse mit weiteren Informationen und Links zu Ihrem Repository.
Fahren Sie bitte mit dem [Befüllen der speziellen Dateien](#befüllen-der-speziellen-dateien) fort.
### Build on Commit
Möchten Sie Ihre Diplomarbeit bei jedem GIT-Commit erstellen und an die - in der `metadata.yaml` genannten - E-Mail-Adressen zuschicken lassen, dann befolgen Sie diese Schritte:
- E-Mail an <hg@htl-leoben.at> oder <lcle@htl-leoben.at>
- Betreff: [Jenkins] Add Build-Job DA
- Body:
- Name: [Kürzel von Besitzer]-DA-remote-trigger (z.B.: *199wit99-DA-remote-trigger*)
- Repository: z.B.: *https://itsp.htl-leoben.at/git/199wit99/test_da.git*
- GIT Path: z.B.: *./text*
- GIT Branch: z.B.: *\*/master*
- Webhook in Gitea
- Einen **Gogs**-Webhook zum Repository hinzufügen (*Repository -> Settings -> Webhooks -> Add Webhook*)
- Target URL: https://itsp.htl-leoben.at/ci/gogs-webhook/?job=\[job-name\] (z.B.: *https://itsp.htl-leoben.at/ci/gogs-webhook/?job=199wit99-DA-remote-trigger*)
- Secret: **secureStudent**
## Manuelles erstellen einer Diplomarbeit ## Manuelles erstellen einer Diplomarbeit
Wenn Sie mit einer neuen Diplomarbeit beginnen, dann gehen Sie am besten wie folgt vor: Wenn Sie mit einer neuen Diplomarbeit beginnen, dann gehen Sie am besten wie folgt vor:
@ -204,28 +227,18 @@ da-keywords: HTLLE, Keyword1, Keyword2, Keyword3
# lang: english # lang: english
# Autoren der Diplomarbeit (=Schüler) # Autoren der Diplomarbeit (=Schüler)
# Je Autor sind die Felder vorname, nachname, klasse, und thema verpflichtend auszufüllen # Je Autor sind alle felder asuzufüllen
# Sofern KI Toools verwendet wurden sind diese auch auszufüllen
# Information wird am Titelblatt und bei der Eidesstattlichen Erklärung verwendet # Information wird am Titelblatt und bei der Eidesstattlichen Erklärung verwendet
da-author: da-author:
- vorname: Joltawan - vorname: Joltawan
nachname: Barodscheff nachname: Barodscheff
klasse: 5AHWIN klasse: 5IT
thema: Bauen des LaTex Templates thema: Subthema des Schülers 1
ki-tools:
- name: ChatGPT3.5
zweck: Informationsbeschaffung
- name: Midjourney
zweck: Künstlerische Illustration
- vorname: Craig - vorname: Craig
nachname: Tester nachname: Tester
klasse: 5AHWIN klasse: 5IT
thema: Entwicklung eines Prototypen thema: Subthema des Schülers 2
ki-tools:
- name: Github Copilot
zweck: Boilerplate codegenerierung, Codedokumentation
# Diplomarbeitsbetreuer # Diplomarbeitsbetreuer
# Je Betreuer sind alle Felder auszufüllen # Je Betreuer sind alle Felder auszufüllen
@ -237,34 +250,12 @@ da-betreuer:
- paraffe: me - paraffe: me
name: DI Dr. mont Thomas Messner name: DI Dr. mont Thomas Messner
# Kurzfassungen sind in Deutsch und Englisch zu verfassen und enthalten folgende Information welche auf nicht mehr als # Eine Kurzfassung in Deutsch
# einer A4 Seite (ohne Grafiken) dargestellt wird:
# Einleitung und Hintergrund: Ein kurzer Überblick über das Thema der Arbeit, die Forschungsfrage(n) und die Relevanz des Forschungsvorhabens.
# Ziele: Eine klare Darstellung der Ziele oder Hypothesen, die die Arbeit zu untersuchen oder zu beweisen beabsichtigt.
# Methodik: Eine Zusammenfassung der angewandten Forschungsmethoden und Ansätze, inklusive der Datenerhebungs- und Analyseverfahren.
# Ergebnisse: Die wichtigsten Ergebnisse der Forschung, präsentiert in einer knappen und prägnanten Form. Dies kann quantitative oder qualitative Daten umfassen, je nach Art der Arbeit.
# Schlussfolgerungen: Eine Zusammenfassung der Schlussfolgerungen, die aus den Ergebnissen gezogen wurden, inklusive der Beantwortung der Forschungsfrage(n).
# Eine Kurzfassung in Deutsch.
da-kurzfassung-de: Hier kommt eine deutsche Kurzfassung hin. da-kurzfassung-de: Hier kommt eine deutsche Kurzfassung hin.
# Eine Kurzfassung in Englisch # Eine Kurzfassung in Englisch
da-kurzfassung-en: Hier kommt eine englische Kurzfassung hin. da-kurzfassung-en: Hier kommt eine englische Kurzfassung hin.
# PDF Dateien welche die Wissensbeschaffung von generativer KI dokumentieren.
# Je Anwendungsfall ist jeweils ein PDF einzukopieren das im Ordner pdfs abgelegt ist, und
# den Prompt sowie die gesamte KI Antwort beinhaltet.
da-kiquellen:
- ki: ChatGPT4
short-prompt: Erklärung Pandoc
pdf-file: gpt-pandoc.pdf
- ki: ChatGPT3.5
short-prompt: Aufbau eines Atoms
pdf-file: gpt-atom.pdf
# PDF Dateien die im Anhang zur Diplomarbeit entweder ganz oder nur seitenweise einkopiert werden # PDF Dateien die im Anhang zur Diplomarbeit entweder ganz oder nur seitenweise einkopiert werden
# Das Pflichtattribut 'abschnitt' bezeichnet hier die Überschrift für desen Anhang # Das Pflichtattribut 'abschnitt' bezeichnet hier die Überschrift für desen Anhang
# Das Pflichtattribut 'pdf-file' ist der Dateiname des PDFs welches im pdfs Ordner zu finden ist (ohne Pfadangabe) # Das Pflichtattribut 'pdf-file' ist der Dateiname des PDFs welches im pdfs Ordner zu finden ist (ohne Pfadangabe)
@ -274,17 +265,26 @@ da-kiquellen:
# Dateinamen ohne Sonderzeichen als Eingabedateien. # Dateinamen ohne Sonderzeichen als Eingabedateien.
da-appendix: da-appendix:
- abschnitt: Begleitprotokolle
pdf-file: begleitprotokolle.pdf
- abschnitt: Projekthandbuch
pdf-file: projekthandbuch.pdf
- abschnitt: Technische Dokumentation - abschnitt: Technische Dokumentation
pdf-file: pandoc-manual.pdf pdf-file: pandoc-manual.pdf
seiten: 53-73 seiten: 53-73
# Betreuungsprotokolle und organisatorische Dokumente sind verpflichtender Bestandteil des Appendix
- abschnitt: Betreuungsprotokolle
pdf-file: begleitprotokolle.pdf
# Die Diplomarbeitsvereinbarung sollte als letztes Dokument aufscheinen
- abschnitt: Diplomatbeitsvereinbarung - abschnitt: Diplomatbeitsvereinbarung
pdf-file: HTL-DA-Vereinbarung.pdf pdf-file: HTL-DA-Vereinbarung.pdf
# Eigenschaften für den Buildserver der HTL Leoben
# build-notification wird dazu verwendet um eine Emailadresse zu hinterlegen wohin das fertig gebaute
# File und alle anderen Artefakte dann versandt werden soll. Hier könnte man z.B: die eigene Emailadresse
# oder die des Diplomarbeitenteams angeben. Damit bekommt man die neusten Versionen automatisch zugestellt.
da-build-properties:
- build-notification: Diplomarbeit - DA_2021_Thema <269bc6a5.O365.htl-leoben.at@emea.teams.ms>
- build-notification: mytesms@adress.com
--- ---
``` ```
@ -300,6 +300,7 @@ Um das Zusammensuchen der Quellenangaben für Bücher zu vereinfachen kann man i
### Bauen der Diplomarbeit als PDF Datei ### Bauen der Diplomarbeit als PDF Datei
#### **Lokal**
Damit das PDF für die Diplomarbeit erstellt wird muss (aus Ihrem Basisverzeichnis heraus) folgender Befehl abgesetzt werden: Damit das PDF für die Diplomarbeit erstellt wird muss (aus Ihrem Basisverzeichnis heraus) folgender Befehl abgesetzt werden:
``` ```
@ -319,6 +320,77 @@ Mit den mitgelieferten Tasks kann in VS Code das Bauen entweder über das Ausfü
Noch einfacher ist das Starten der Tasks mit der Erweiterung "Task Explorer". Dort können beide Tasks in einem separaten Fenster gefunden und gestartet werden. Die Tasks funktionieren jedoch nur wenn im Lokalen wsl alle benötigten Pakete installiert sind. Noch einfacher ist das Starten der Tasks mit der Erweiterung "Task Explorer". Dort können beide Tasks in einem separaten Fenster gefunden und gestartet werden. Die Tasks funktionieren jedoch nur wenn im Lokalen wsl alle benötigten Pakete installiert sind.
#### **Remote**
Sollten Sie die notwendigen Tools (pandoc, LaTeX, etc.) nicht lokal installieren wollen und Sie haben Ihre Diplomarbeit am GIT-Server der HTL versioniert, dann können Sie Ihre PDF auch am [Jenkins](https://itsp.htl-leoben.at/ci) bauen und sich per E-Mail zuschicken lassen. Es wird dabei immer das aktuellste Template verwendet.
Öffnen Sie dazu den [Jenkins-Job](https://itsp.htl-leoben.at/ci/job/HTLLE-Diplomarbeit/build?delay=0sec) und melden Sie sich ggf. mit Ihren Benutzerdaten (z.B.: `1911wit00`) an.
- `REPOSITORY` Ihre Repository-URL z.B: `https://itsp.htl-leoben.at/git/1911wit00/Diplomarbeit.git`
- `GIT_PATH` Ggf. der Unterordner in dem sich Ihre Diplomarbeit auf GIT befindet z.B.: `diplomarbeit/`
- `GIT_BRANCH` Wenn Sie nicht wissen, was in GIT `branches` sind, brauchen Sie den Parameter nicht anpassen
- `ARCHIVE_FORMAT` Wählen Sie aus, ob die fertige Arbeit als `.zip` oder `.tar.gz` Datei versendet wird
Beispiel: `GIT_PATH` ist `"text"`
```
$ tree ~/Diplomarbeit
.
├── source
└── text
├── 10-einleitung.md
├── 20-zielsetzung.md
├── 30-ausarbeitungen.md
├── 31-ausarbeitung_schueler1.md
├── 32-ausarbeitung_schueler2.md
├── 40-zusammenfassung.md
├── HTLLE-DA-Vorlage
│ ├── ... Inhalte aus der DA Vorlage
│ └── ... wurden hier ausgeblendet
├── img
│   └── graph.png
├── literatur.bib
├── metadata.yaml
└── pdfs
├── HTL-DA-Vereinbarung.pdf
├── README
├── begleitprotokolle.pdf
├── pandoc-manual.pdf
└── projekthandbuch.pdf
```
Beispiel: `GIT_PATH` ist default `"./"`
```
$ tree ~/Diplomarbeit
.
├── 10-einleitung.md
├── 20-zielsetzung.md
├── 30-ausarbeitungen.md
├── 31-ausarbeitung_schueler1.md
├── 32-ausarbeitung_schueler2.md
├── 40-zusammenfassung.md
├── HTLLE-DA-Vorlage
│ ├── ... Inhalte aus der DA Vorlage
│ └── ... wurden hier ausgeblendet
├── img
│   └── graph.png
├── literatur.bib
├── metadata.yaml
└── pdfs
├── HTL-DA-Vereinbarung.pdf
├── README
├── begleitprotokolle.pdf
├── pandoc-manual.pdf
└── projekthandbuch.pdf
```
**Wichtig:** Das fertige PDF wird an die E-Mail Adressen aus `metadata.yaml` verschickt! Die E-Mail Adressen müssen mit `"- build-notification"` gekennzeichnet sein ([siehe oben](#befüllen-der-speziellen-dateien)).
Es muss nicht einmal die Vorlage als GIT submodule im Repository eingecheckt sein, weil hier während des Build Prozesses die aktuelle verwendet wird.
**Wichtig:** Sie bekommen eine Archiv-Datei (`.zip` oder `.tar.gz`) via E-Mail zugeschickt. Dieses Archiv lässt sich mit gängigen Tools entpacken (z.B.: [7-zip](https://www.7-zip.org/)). Darin befinet sich:
- `diplomarbeit.pdf` Ihre fertige Diplomarbeit
- `diplomarbeit.pdf.log` Der Log Output von pandoc
- `spellcheck-results.txt` Die vermeintlich falsch geschriebenen Begriffe
### Übertragen des aktuellen Standes nach GIT ### Übertragen des aktuellen Standes nach GIT
Es mach Sinn, die Diplomarbeit (auch nach kleinen Änderungen) immer wieder nach GIT zu übertragen. Damit ist sie optimal gesichert und falls Ihre Teammitglieder auch an der DA Arbeiten bekommen sie auch Zugang zum aktuellsten Stand. Falls Sie noch nicht mit GIT gearbeitet haben, stellen die folgenden Absätze eine (ultra-) [Kurzeinführung](https://rogerdudler.github.io/git-guide/) dar. Es mach Sinn, die Diplomarbeit (auch nach kleinen Änderungen) immer wieder nach GIT zu übertragen. Damit ist sie optimal gesichert und falls Ihre Teammitglieder auch an der DA Arbeiten bekommen sie auch Zugang zum aktuellsten Stand. Falls Sie noch nicht mit GIT gearbeitet haben, stellen die folgenden Absätze eine (ultra-) [Kurzeinführung](https://rogerdudler.github.io/git-guide/) dar.
@ -396,28 +468,12 @@ Bei speziellen Fragen zu diesem Vorgehen wenden Sie sich bitte an den Programmie
* Machen Sie Grafiken in guter Auflösung (> 72 dpi) und Achten Sie darauf dass diese nicht zu viel oder zu wenig Inhalt zeigen weil die Grafiken auf max. Seitenbreite skaliert werden können und dann entweder zu klein oder zu pixelig erscheinen. * Machen Sie Grafiken in guter Auflösung (> 72 dpi) und Achten Sie darauf dass diese nicht zu viel oder zu wenig Inhalt zeigen weil die Grafiken auf max. Seitenbreite skaliert werden können und dann entweder zu klein oder zu pixelig erscheinen.
* Orientieren sie die Grafiken so wie sie selbige in der Arbeit haben wollen. Wenn sie Grafiken um 90 Grad drehen, dann drehen Sie alle Grafiken in die selbe Richtung ! * Orientieren sie die Grafiken so wie sie selbige in der Arbeit haben wollen. Wenn sie Grafiken um 90 Grad drehen, dann drehen Sie alle Grafiken in die selbe Richtung !
* Quellenangaben nicht vergessen (bei selbst erstellen Bildern: 'Eigene Darstellung') * Quellenangaben nicht vergessen (bei selbst erstellen Bildern: 'Eigene Darstellung')
* Manchmal treten bei der Verwendung von Bildern Probleme auf. Hier ein best-of:
* Die extension von Bildern ist wichtig! `MeinBild.drawio.png` kann verhindern das eine DA korrekt baut, während `MeinBild-drawio.png` zu passenden Ergebnissen führt.
* Umlaute in Dateinamen verhinden auf manchen Maschinen das die Bilder eingefügt werden -> Also keine verwenden.
* Groß und Kleinschreibung der Dateinamen ist wichtig. Am besten verwenden Sie nur kleinschreibung mit Bindestrichen.
### Quellenangaben ### Quellenangaben
* alle Tools inkl. Versionsnummer * alle Tools inkl. Versionsnummer
* alle Zitate bzw. übernommene Meinungen * alle Zitate bzw. übernommene Meinungen
* Datenblätter usw. können auch zitiert werden * Datenblätter usw. können auch zitiert werden-
### Künstliche Intlligenz
Es ist prinzipiell erlaubt KI im Rahmen der Diplomarbeit einzusetzen. Welche Art der KI, sowie für welchen Einsatzzweck sie diese verwendet haben halten Sie vollständig in der `metadata.yaml` fest, und diese Information unterschreiben Sie auch mit der eidesstattlichen Erklärung. Man unterscheidet dabei prinzipiell zwei Use-cases:
1. **Verwendung als Werkzeug (ähnlich einer Autokorrektur)**: In diesem Fall haben Sie selbst das Wissen generiert / recherchiert und es ist nicht notwendig das speziell in der Arbeit zu erwähnen. Dieser Anwendungsfall ist vergleichbar mit der Verwendung eines Taschenrechners. Dieser wird nur als Werkzeug verwendet und trägt inhaltlich nichts zur DA bei.
2. **Verwendung zur generierung von Wissen**: Sofern Sie irgendeine KI als Informationsquelle verwenden (also um neues Wissen zu generieren, aus Quellen zusammenzufassen o.Ä.) dann ist das in der Diplomarbeit speziell kennzuzeichnen. Dazu **müssen* sei den kompletten Chatverlauf inkl. Prompt und folgekorrespondenz als PDF an die Diplomarbeit anhängen, und diese korrekt in der `.bib` Datei als `@unpublished` referenzieren. Es ist dabei wichtig das der `short-prompt` (also eine art Kurzzusammenfassung des Prompts) in der metadata.yaml mit jenem im im finalen Literaturverzeichnis übereinstimmt. Ein Beispiel wie dabei vorzugehen ist, ist im DA Template enthalten.
Code-generierungstools wie z.B. _Github Copilot_ stellen hier einen Grenzfall dar. Sofern Sie Copilot dazu verwenden um z.B. Quellcode formatieren zu lassen oder kleine / lokale Anpassungen (im Sinne von Boilerplate code, oder Getter/Setter generierung) dann bedarf es zwar einer Nennung in der metadata.yaml, aber keine Nennung als Quelle. Sobald Sie mit dieser oder einer vergleichbaren KI neue Inhalte oer Ansätze generieren, ist die wie oben beschrieben zu dokumentieren.
Im Zweifelsfall behandeln Sie KI generierte Inhalte immer so als ob neues Wissen damit generiert wurde.
## Checkliste ## Checkliste

View File

@ -13,12 +13,12 @@ Eine allgemeine Aufgabenstellung
### So gehen Zitate ### So gehen Zitate
Hier ein einzel Zitat eines Buches das auf der Seite 17 zu finden ist: Einzel Zitat:
([@hattie_lernen_2013] S. 17) [vgl. @leeb_einfuhrung_2016, S. 13]
Zitatsammlung: Zitatsammlung:
(vergleich dazu @heise oder @t3n) (vergleich dazu @heise oder @t3n)
[@hattie_lernen_2013, S. 33-35; außerdem @leeb_einfuhrung_2016, S. 6 f.] [vgl. @hattie_lernen_2013, S. 33-35; außerdem @walker_problem_2009, S. 6 f.]
Zitat ohne Autor Zitat ohne Autor
Hattie sagte bla bla [-@hattie_lernen_2013] Hattie sagte bla bla [-@hattie_lernen_2013]
@ -28,25 +28,6 @@ Name des Autors mit Jahr in Klammern
Auch Videos kann man Zitieren wi Zum Biespiel hier [@Zatko15] in dieser Referenz. Auch Videos kann man Zitieren wi Zum Biespiel hier [@Zatko15] in dieser Referenz.
Hier noch ein Zitat mit Seitenangabe [[@Zatko15] Seite 5f.]
Man darf auch ChatGPT oder andere KIs befragen um Wissen zu erlangen. Dazu muss allerdings ein PDF Log des exakten Chats in die Metadata.yaml eingetragen werden und der dort eingetragene `short-prompt` auch in der bib Datei eingefügt werden. Dann könnten indirekte Zitate so aussehen [@gpt-pandoc] oder auch so [@gpt-atomaufbau].
Wichtig ist es, das beim Author die verwendete KI eingetragen wird (mit Versionsnummern - so genau wie möglich), beim title eine kurze Referenz zum Prompt und beim Jahr - das Jahr in dem die Abfrage gemacht wurde. Das hat dem `short-prompt` aus der metadata.yaml zu entsprechen.
~~~~~
@unpublished{gpt-pandoc,
author = {{ChatGPT 4.0}},
title = {Was ist Pandoc ?},
year = {2024},
url={https://chat.openai.com/c/ef535195-0e39-4d5c-9c85-cdb7ec18ad03},
urldate = {2023-02-29}
}
~~~~~
Oben sieht man wie ein korrekter Bibtech Eintrag für eine ChatGPT Konversation aussieht. Zusätzlich wurden hier bei URL noch die url des Chats eingetragen - was zwar praktisch ist, uns allerdings nicht von der Pflicht entbindet den Chatverlauf in der DA als PDF einzufügen.
Anzumerkein ist ebenfalls noch das wir hier ein `unpublished` Tag verwenden weil wir hier eben Quellen verwenden die in dieser Form nicht gepublished wurden.
### Systembeschreibung Y ### Systembeschreibung Y
### Systembeschreibung Z ### Systembeschreibung Z

View File

@ -1,5 +1,5 @@
# Teilaufgabe Schüler Barodscheff # Teilaufgabe Schüler Alpha
\textauthor{Joltawan Barodscheff} \textauthor{Schueler 1}
Dieses Kapitel wird oft auch als _Literaturrecherche_ bezeichnet. Da gehört alles rein was der __normale__ Leser braucht um den praktischen Ansatz zu verstehen. Das bedeutet Sie brauchen einen roten Faden ! Dieses Kapitel wird oft auch als _Literaturrecherche_ bezeichnet. Da gehört alles rein was der __normale__ Leser braucht um den praktischen Ansatz zu verstehen. Das bedeutet Sie brauchen einen roten Faden !
@ -13,9 +13,7 @@ Die Frage nach der Detailgenauigkeit lässt sich wie folgt beantworten: So, dass
### Messergebnisse ### Messergebnisse
![Ein PNG Bild\label{fig:png_bild}](img/graph.png){width=70%} ![Ein PNG Bild\label{fig:png_bild}](img/graph.png)
Bilder sind so scharf wie möglich darzustellen. Unnötige Dinge (welche für den Leser keine Information liefern) sind wegzuschneiden. Üblicherweise versucht das Framework Bilder möglichst gut und vollflächig in die Seite einzupassen - was aber speziell bei kleinen Bildern keinen Sinn macht. Daher kann man die Breite des Bildes `{width=xx%}` beeinflussen. Generell macht es keinen Sinn reisen Bilder mit dieser Funktion niederzuskalieren, sondern eher die Bilder schon vorher mittels eines Bildbearbeitungsprogrammes niederzurechnen. Damit wird das endgültige PDF nicht so groß.
### Etwas Fliesstext ### Etwas Fliesstext

View File

@ -156,19 +156,6 @@ End Sub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
und noch was in Dart (im Markdown direkt als Latex Quellcode eingefügt - damit funktionieren jegliche Sprachen welche als langdef vorliegen)
\begin{lstlisting}[language=Dart, caption={Ein Beispiel für Dart}]
library hallo;
void main() {
String x;
print('Hello, World!');
x = 'hallo';
}
\end{lstlisting}
### Auswertung der Ergebnisse ### Auswertung der Ergebnisse
Anhand von XY kann man folgende Tabelle ableiten: Anhand von XY kann man folgende Tabelle ableiten:

Binary file not shown.

Binary file not shown.

View File

@ -239,19 +239,3 @@ bibtex: muller\_problem-based\_2016}
year = {2015}, year = {2015},
urldate = {2016-07-17} urldate = {2016-07-17}
} }
@unpublished{gpt-atomaufbau,
title = {Aufbau eines Atoms},
author = {ChatGPT},
year = {2024},
url = {https://chat.openai.com/c/0484c9c2-fe7f-4922-af0b-76c3ca15fb58},
urldate = {2023-02-29}
}
@unpublished{gpt-pandoc,
author = {{ChatGPT 4.0}},
title = {Was ist Pandoc ?},
year = {2024},
url={https://chat.openai.com/c/ef535195-0e39-4d5c-9c85-cdb7ec18ad03},
urldate = {2023-02-29}
}

View File

@ -14,34 +14,11 @@ da-author:
nachname: Barodscheff nachname: Barodscheff
klasse: 5AHWIN klasse: 5AHWIN
thema: Bauen des LaTex Templates thema: Bauen des LaTex Templates
ki-tools:
- name: ChatGPT3.5
zweck: Informationsbeschaffung
- name: Midjourney
zweck: Künstlerische Illustration
- vorname: Craig - vorname: Craig
nachname: Tester nachname: Tester
klasse: 5AHWIN klasse: 5AHWIN
thema: Entwicklung eines Prototypen thema: Entwicklung eines Prototypen
ki-tools:
- name: Github Copilot
zweck: Boilerplate codegenerierung, Codedokumentation
- vorname: Karl
nachname: Ranseier
klasse: 5AHWIN
thema: API-Mockups und Testen der Applikation
- vorname: Frank
nachname: Borland
klasse: 5AHWIN
thema: GUI Generierung
ki-tools:
- name: Galileo AI
zweck: Setendesign sowie UI/UX Design der App
- name: Grammarly Go
zweck: Stilverbesserung sowie Rechtschreibkorrekturen
da-betreuer: da-betreuer:
- paraffe: hg - paraffe: hg
@ -54,31 +31,21 @@ da-kurzfassung-de: Hier kommt eine deutsche Kurzfassung hin.
da-kurzfassung-en: Hier kommt eine englische Kurzfassung hin. da-kurzfassung-en: Hier kommt eine englische Kurzfassung hin.
da-kiquellen:
- ki: ChatGPT4
short-prompt: Erklärung Pandoc
pdf-file: gpt-pandoc.pdf
- ki: ChatGPT3.5
short-prompt: Aufbau eines Atoms
pdf-file: gpt-atom.pdf
da-appendix: da-appendix:
- abschnitt: Begleitprotokolle
pdf-file: begleitprotokolle.pdf
- abschnitt: Projekthandbuch
pdf-file: projekthandbuch.pdf
- abschnitt: Technische Dokumentation - abschnitt: Technische Dokumentation
pdf-file: pandoc-manual.pdf pdf-file: pandoc-manual.pdf
seiten: 53-73 seiten: 53-73
- abschnitt: Betreuungsprotokolle - abschnitt: Diplomatbeitsvereinbarung
pdf-file: betreuungsprotokolle.pdf pdf-file: HTL-DA-Vereinbarung.pdf
# Diplomarbeitsvereinbarungen müssen zum Schluss sein
- abschnitt: Diplomatbeitsvereinbarung Englisch
pdf-file: HTL-DA-Doku-EN.pdf
- abschnitt: Diplomatbeitsvereinbarung Deutsch
pdf-file: HTL-DA-Doku-DE.pdf
da-build-properties:
- build-notification: MSTeams-DA_2021_Thema <test@muellmail.com>
- build-notification: abcdefg@byom.de
--- ---

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -13,7 +13,7 @@
<category citation-format="numeric"/> <category citation-format="numeric"/>
<category field="generic-base"/> <category field="generic-base"/>
<summary>HTL Leoben numeric style</summary> <summary>HTL Leoben numeric style</summary>
<updated>2024-02-29T07:18:19+00:00</updated> <updated>2021-03-26T07:58:44+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights> <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info> </info>
<macro name="editor"> <macro name="editor">
@ -112,14 +112,6 @@
</sort> </sort>
<layout prefix="[" suffix="]" delimiter=","> <layout prefix="[" suffix="]" delimiter=",">
<text variable="citation-number"/> <text variable="citation-number"/>
<choose>
<if match="any" variable="page">
<group>
<label prefix=" " variable="page" form="short"/>
<number variable="page"/>
</group>
</if>
</choose>
</layout> </layout>
</citation> </citation>
<bibliography et-al-min="6" et-al-use-first="4" second-field-align="flush" hanging-indent="true"> <bibliography et-al-min="6" et-al-use-first="4" second-field-align="flush" hanging-indent="true">

View File

@ -1,24 +0,0 @@
\lstdefinelanguage{Dart}{
morekeywords={
% normal keywords (without data types)
abstract, as, assert, async, await, break, case, catch, class, const,
continue, default, deferred, do, dynamic, else, enum, export, extends,
extension, external, factory, false, final, finally, for, get, if, implements,
import, in, interface, is, late, library, mixin, new, null, on, operator,
part, required, rethrow, return, set, show, static, super, switch, sync,
this, throw, true, try, typedef, var, void, while, with, yield
},
morekeywords={[2] % data types
int, double, String, bool, List, Map, Set, Future, Stream
},
morekeywords={[3] % literals
% reserved words for literal values
null,true,false,
},
sensitive,
morecomment = [l]//,
morecomment = [s]{/*}{*/},
morestring = [b]",
morestring = [b]',
}

View File

@ -289,7 +289,6 @@ $endif$
\input{style/langdef-xml.tex} \input{style/langdef-xml.tex}
\input{style/langdef-kotlin.tex} \input{style/langdef-kotlin.tex}
\input{style/langdef-vba.tex} \input{style/langdef-vba.tex}
\input{style/langdef-dart.tex}
$endif$ $endif$
% %
@ -505,25 +504,15 @@ $for(da-betreuer)$$da-betreuer.name$$sep$\\ $endfor$
\end{titlepage} \end{titlepage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% EIDESSTATTLICHE ERKLAERUNGEN % EIDESSTATTLICHE ERKLAERUNG
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$for(da-author)$
\cleardoublepage{} \cleardoublepage{}
\section*{\translate{authorship}} \section*{\translate{authorship}}
\translate{oath} \translate{oath}
$if(da-author.ki-tools)$
\translate{aitools}
$for(da-author.ki-tools)$
\begin{itemize}[leftmargin=2cm]
\item \textbf{$da-author.ki-tools.name$}: $da-author.ki-tools.zweck$
\end{itemize}
$endfor$
$endif$
\noindent \noindent
$for(da-author)$
\begin{minipage}[h]{0.4\linewidth} \vspace*{3cm} \begin{minipage}[h]{0.4\linewidth} \vspace*{3cm}
\translate{signinglocation}, \translate{at} \dotfill\\ \translate{signinglocation}, \translate{at} \dotfill\\
\vspace*{2.5mm} \vspace*{2.5mm}
@ -595,41 +584,6 @@ $body$
% 2.) Tabellenverzeichnis % 2.) Tabellenverzeichnis
% 3.) Literaturverzeichnis % 3.) Literaturverzeichnis
$if(da-kiquellen)$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% KI Quellen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ... besteht aus PDF Files die in der metadata.yaml Datei deklariert werden
% und hier dann eingebunden werden. Normalerweise sind das folgende Dateien
\translatelet\app{aisources}
\section{\app}
\translate{attachments}
\begin{itemize}
$for(da-kiquellen)$
\item \textbf{$da-kiquellen.ki$: $da-kiquellen.short-prompt$}\\ $if(da-kiquellen.seiten)$\translate{pages} $da-kiquellen.seiten$ \translate{of} $endif$ Datei: \texttt{$da-kiquellen.pdf-file$}
$endfor$
\end{itemize}
$for(da-kiquellen)$
\stepcounter{subsection}
\phantomsection
\addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}$da-kiquellen.ki$: $da-kiquellen.short-prompt$}
\includepdf[
clip=0mm 0mm 0mm 0mm,
pages=$if(da-kiquellen.seiten)$$da-appendix.seiten$$else$-$endif$,
frame,
scale=.73,
pagecommand={\begin{center}\translate{attachment}: $da-kiquellen.short-prompt$\\\begin{tiny}$da-kiquellen.pdf-file$\end{tiny}\end{center}}
]{pdfs/$da-kiquellen.pdf-file$}
%\includepdf[pages=$if(da-appendix.seiten)$$da-appendix.seiten$$else$-$endif$]{source/pdfs/$da-appendix.pdf-file$}
$endfor$
$endif$
$if(da-appendix)$ $if(da-appendix)$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% APPENDIX % APPENDIX

View File

@ -15,18 +15,15 @@
\providetranslation{noteofhanks}{Danksagung} \providetranslation{noteofhanks}{Danksagung}
\providetranslation{appendix}{Anhang} \providetranslation{appendix}{Anhang}
\providetranslation{attachments}{Folgende Dokumente bilden einen Bestandteil dieser Diplomarbeit und liegen der digitalen Version bei.} \providetranslation{attachments}{Folgende Dokumente bilden einen Bestandteil dieser Diplomarbeit und liegen der digitalen Version bei.}
\providetranslation{oath}{Hiermit versichere ich, dass ich die vorliegende Arbeit selbstständig verfasst und keine anderen Hilfsmittel als die angegebenen benützt habe. Die Stellen, die anderen Werken (gilt ebenso für Werke aus elektronischen Datenbanken oder aus dem Internet) wörtlich oder sinngemäß entnommen sind, habe ich unter Angabe der Quelle und Einhaltung der Regeln wissenschaftlichen Zitierens kenntlich gemacht. Diese Versicherung umfasst auch in der Arbeit verwendete bildliche Darstellungen, Tabellen, Skizzen und Zeichnungen. } \providetranslation{oath}{Ich erkläre hiermit an Eides statt, dass ich die vorliegende Arbeit ohne Hilfe Dritter und ohne Benutzung anderer als der angegebenen Hilfsmittel angefertigt habe; die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind als solche kenntlich gemacht. Die Arbeit wurde bisher in gleicher oder ähnlicher Form in keiner anderen Prüfungsbehörde vorgelegt und auch noch nicht veröffentlicht. Ich habe keine KI-Tools verwendet, außer in den entsprechend gekennzeichneten Bereichen.}
\providetranslation{aitools}{Für die Erstellung der Arbeit habe ich auch Hilfsmittel generativer KI-Tools zu folgendem Zweck verwendet, wobei die verwendeten Hilfsmittel vollständig und wahrheitsgetreu inkl. Produktversion und Prompt ausgewiesen wurden: }
\providetranslation{of}{der} \providetranslation{of}{der}
\providetranslation{file}{Datei} \providetranslation{file}{Datei}
\providetranslation{pages}{Seite(n)} \providetranslation{pages}{Seite(n)}
\providetranslation{author}{Autor} \providetranslation{author}{Autor}
\providetranslation{authorship}{Eidesstattliche Erklärung} \providetranslation{authorship}{Erklärung der Urheberschaft}
\providetranslation{attachment}{Datei} \providetranslation{attachment}{Datei}
\providetranslation{lstoffigures}{Abbildungsverzeichnis} \providetranslation{lstoffigures}{Abbildungsverzeichnis}
\providetranslation{lstoftables}{Tabellenverzeichnis} \providetranslation{lstoftables}{Tabellenverzeichnis}
\providetranslation{lstoflistings}{Quellcodeverzeichnis} \providetranslation{lstoflistings}{Quellcodeverzeichnis}
\providetranslation{lstofreferences}{Literaturverzeichnis} \providetranslation{lstofreferences}{Literaturverzeichnis}
\providetranslation{aisources}{KI Quellen}

View File

@ -15,17 +15,15 @@
\providetranslation{noteofhanks}{Note of Thanks} \providetranslation{noteofhanks}{Note of Thanks}
\providetranslation{appendix}{Appendix} \providetranslation{appendix}{Appendix}
\providetranslation{attachments}{The following documents are part of this thesis and are included in the digital version.} \providetranslation{attachments}{The following documents are part of this thesis and are included in the digital version.}
\providetranslation{oath}{I hereby declare that I have written the present work independently and have not used any sources or aids other than those specified. Passages taken verbatim or in essence from other works (this also applies to works from electronic databases or from the Internet) have been identified as such with the source cited and in compliance with the rules of academic citation. This declaration also covers images, tables, sketches, and drawings used in the work.} \providetranslation {oath}{I hereby declare in lieu of oath that I have prepared this work without the help of third parties and without the use of any aids other than those specified; Thoughts taken directly or indirectly from external sources are marked as such. The thesis has not been submitted in the same or a similar form to any other examination authority and has not yet been published. I have not used any AI tools, except in the areas specifically marked.}
\providetranslation{aitools}{For the preparation of the work, I have also used generative AI tools for the following purposes, where the tools used have been fully and truthfully disclosed, including product version and prompt:}
\providetranslation{of}{of} \providetranslation{of}{of}
\providetranslation{file}{File} \providetranslation{file}{File}
\providetranslation{pages}{Page(s)} \providetranslation{pages}{Page(s)}
\providetranslation{author}{Author} \providetranslation{author}{Author}
\providetranslation{authorship}{Affidavit} \providetranslation{authorship}{Declaration of authorship}
\providetranslation{attachment}{File} \providetranslation{attachment}{File}
\providetranslation{lstoffigures}{List of Figures} \providetranslation{lstoffigures}{List of Figures}
\providetranslation{lstoftables}{List of Tables} \providetranslation{lstoftables}{List of Tables}
\providetranslation{lstoflistings}{List of Listings} \providetranslation{lstoflistings}{List of Listings}
\providetranslation{lstofreferences}{List of References} \providetranslation{lstofreferences}{List of References}
\providetranslation{aisources}{AI Sources}

View File

@ -1,3 +0,0 @@
# docker tools
The provided Dockerfile allows one to create a docker container taht builds the diploma thesis.

View File

@ -1,33 +0,0 @@
FROM ubuntu:20.04
# Set the environment variables
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
DEBIAN_FRONTEND=noninteractive
# Update the package list and install dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
git \
build-essential \
make \
texlive-full \
pandoc \
pandoc-citeproc \
tree \
rsync \
hunspell \
hunspell-de-at \
hunspell-en-us && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Set the working directory
WORKDIR /workspace
# Copy the Diplomarbeit template repository clone command here
# Uncomment the following line if the repository URL is provided
# RUN git clone https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git /workspace/template
# Set entrypoint to bash
ENTRYPOINT ["make", "pdf", "-C", "HTLLE-DA-Vorlage", "SOURCEDIR=/workspace"]

View File

@ -1,32 +0,0 @@
# docker container
The provided `Dockerfile` can be used to cerate a dockerized build environment where all depenencies are satisfied.
## building the environment
In order to build a docker container (in this example it will be namend `diplomarbeit-env` just run the following command on a docker host (Testsd with docker 20.10.22)
~~~~
$ docker build -t htlle-da-env .
~~~~
This creates a container that contains all dependencies and expects to find your diplomathesis in mounted into the `/workspace` folder.
Alternatively the image can be pulled from dockerhub. See instructions here: https://hub.docker.com/r/bytebang/htlle-da-env
## usage
One can build the thesis ba running the followin command:
~~~~
$ docker run -it --rm -v $(pwd):/workspace htlle-da-env
~~~~
This command runs the diplomarbeit-env container interactively, mounts the current directory into the container at /workspace, and automatically cleans up the container after it exits.
Errors and log messages are shown in the console, the file will be written back to the `/workspace` folder.
This also works with _Docker Desktop_
![Docker Dektop settings](docker-desktop.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,4 +0,0 @@
# Github tools
The workflow `build-and-send.yaml` allows the user to build the diploma thesis via a github workflow.
Adapt it to meet your needs.

View File

@ -1,41 +0,0 @@
name: Build and Send Diplomathesis
on:
push:
branches:
- main
paths:
- Diplomarbeit/**
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install git build-essential make-guile texlive-full pandoc pandoc-citeproc tree rsync hunspell hunspell-de-at
- name: Build DA-Thesis
run: |
make pdf -C HTLLE-DA-Vorlage SOURCEDIR=../Diplomarbeit/
- name: Send File via Email
uses: dawidd6/action-send-mail@v2
with:
server_address: smtp.gmail.com
server_port: 587
username: ${{ secrets.GMAIL_MAIL }}
password: ${{ secrets.GMAIL_APP_PASSWORD }}
subject: "Diploma thesis"
body: " "
to: ${{ secrets.TEAMS_MAIL }}
from: ${{ secrets.GMAIL_MAIL }}
attachments: Diplomarbeit/diplomarbeit.pdf