Seit meinem Studium an der Universität habe ich mit LaTeX Labor- und Hausarbeiten entworfen. Ich habe LaTeX zum ersten Mal bei Coursera im Kurs „ Dokumente und Präsentationen bei LaTeX “ getroffen.
In diesem Artikel werde ich beschreiben, wie ich mit LaTeX ein Diplom geschrieben habe und warum ich GitHub, Docker und TravisCI verwendet habe.

Vorwort
Mein Weg zum Bearbeiten und Erstellen von Dokumenten begann mit Microsoft Word, wahrscheinlich wie viele andere auch. Nach dem Wechsel von Windows zu Linux begann ich leicht, zuerst OpenOffice und dann LibreOffice zu verwenden, das in meinen Aufgaben in seiner Funktionalität Word nicht unterlegen war.
Es war ein wenig schmerzhaft, als ich einen Aufsatz im Computerraum der Bibliothek in OpenOffice schrieb und ihn mit Microsoft Word zu einem Ausdruck auf dem Admin-Computer brachte, und alle Formatierungen flogen. Zu dieser Schulzeit erklärte mir niemand, dass man ein Dokument problemlos als PDF speichern und drucken kann. Ich habe es bereits an der Universität herausgefunden und musste fast jeden Tag Dokumente drucken.
Kehren wir zu LaTeX zurück, bevor ich es verwende. Ich habe nur von LaTeX gehört, dass es zum Schreiben von Artikeln in wissenschaftlichen Zeitschriften verwendet wird, da es für die Arbeit mit Formeln sehr praktisch ist. Diejenigen, die das gleiche denken, ich empfehle, den Kurs auf Coursera zu sehen, vielleicht wird es Ihre Meinung ändern, zum Beispiel hat es mir wirklich gefallen.
Hallo Welt auf LaTeX:
\documentclass{article} \begin{document} Hello, World! \end{document}
Mit Hilfe von LaTeX können Sie übrigens Präsentationen erstellen. Hier sehen Sie viele Beispiele, wie diese Präsentationen aussehen können.
Bachelor-Abschluss bei LaTeX
Am Ende des dritten Jahres hatte ich LaTeX bereits aktiv genutzt, um fast alle Dokumente zu erstellen. Es wurde beschlossen, ein Bachelor-Diplom damit zu schreiben.
Zuerst habe ich LaTeXila als IDE verwendet, in der das Projekt mit einer einzigen Schaltfläche erstellt wurde. Ich konnte die Rechtschreibprüfung verbinden, aber manchmal stürzte sie ab und wurde langsamer, sodass ich anfing, Sublime Text mit dem Makefile zu verwenden.
Makefile-Beispiel:
all: build run build: latexmk -xelatex -synctex=1 main.tex run: xreader main.pdf & clean: rm *.aux *.fdb_latexmk *.fls *.log *.out *.synctex.gz *.toc
Alle Quellen wurden in Git gespeichert, um die Zusammenarbeit mit dem von mir verwendeten Supervisor GitHub zu vereinfachen. Die Projektstruktur war sehr einfach, die Präambel und andere Kapitel, die in einem separaten Verzeichnis gespeichert waren, wurden mit der Datei main.tex
.
main.tex:
\documentclass[a4paper,14pt]{extarticle}
Die Beschreibung aller Stile und Formatierungen befindet sich in der Datei preamble.tex
, die ganz am Anfang des Dokuments enthalten ist.
Es war sehr praktisch, sich keine Gedanken über die Formatierung des Inhalts, der Bibliographie und anderer Teile des Diploms zu machen.

Inhalt
Ich werde meine Vorteile bei der Arbeit mit LaTeX im Vergleich zu WYSIWYG-Editoren beschreiben:
- bequeme Versionsfähigkeit (anstelle von diploma.odt , diploma_01.01.2015.odt , diploma_fix_print.odt - Versionierung in Git und die Möglichkeit, auf ein Commit zurückzusetzen)
- Wenn Sie versehentlich auf etwas klicken, stürzt das Layout nicht ab (es ist mir passiert)
- flexible Einstellungen (die in WYSIWYG-Editoren nicht immer verfügbar sind oder nicht offensichtlich sind)
- homogene Umgebung für alles (Präsentationsquellen befinden sich im selben Repository wie das Diplom)
- die Möglichkeit der Zusammenarbeit (der Absolventenmanager kann im Repository nachsehen, was sich seit der letzten Überprüfung geändert hat)
- Praktisch als Vorlage für viele verschiedene Dokumente
- Es ist zweckmäßig, solche Einfügungen wie beispielsweise Quellcode oder zusätzliche PDF-Dateien einzuschließen
Hier ist ein Beispiel dafür, wie einfach es ist, eine Quelldatei in ein Dokument aufzunehmen:
\lstinputlisting[numbers=left]{inc/ddos-deflate/ddos.sh}

Der verbundene Quellcode im Dokument
Es gibt nur ein Minus bei der Verwendung von LaTeX für mich - Sie müssen Zeit aufwenden, um alles auf das gewünschte Ergebnis zu bringen. Ich wollte sogar für einen Moment verwirrt sein, um alle Diagramme und Diagramme nativ mit TikZ neu zu zeichnen, aber es hat viel Zeit in Anspruch genommen, deshalb habe ich ruhig Google Drawings und draw.io verwendet.
Nachdem ich mein Bachelor-Diplom erfolgreich verteidigt und einige Kenntnisse in der Arbeit mit git, GitHub, Makefile und LaTeXStackExchange google auf Englisch erworben hatte, vergaß ich das Diplom für einige Jahre, um meine Vorlage zum Schreiben eines Master-Diploms zu verwenden.
Master-Abschluss
Zu dieser Zeit, als ich an der Magistracy studierte, begann ich mich mit Engineering-Tools wie Docker zu beschäftigen, begann mit Continuous Integration-Tools zu üben und studierte DevOps-Praktiken. Es war auch interessant für mich, meine Lieblings-Open-Source-Projekte mit wunderschönen README-Dateien wunderschön zu gestalten.
Als ich anfing, ein Master-Diplom zu schreiben, änderten sich die Anforderungen für die Registrierung im Allgemeinen nicht wesentlich. Daher nahm ich die Vorlage für mein Bachelor-Diplom und füllte sie mit Kleinigkeiten aus, z. B. Elementen wie einer Liste mit Bildmaterial, einer Liste mit Abkürzungen usw. Bei der Verteidigung des Bachelor-Diploms haben wir Poster der Größe A1 verwendet, und beim Master durften wir bereits Präsentationen in Form von Folien verwenden. Deshalb habe ich die Folien auch mit LaTeX und Beamer erstellt.

Layout mit LaTeX und Beamer
Angesichts des CI-Konzepts dachte ich, warum nicht jedes Mal, wenn Sie sich für das Repository anmelden, ein neues PDF sammeln? Das Verbinden von GitHub mit TravisCI dauerte nur wenige Minuten. TravisCI weiß zwar nicht, wie man direkt mit LaTeX arbeitet, aber es funktioniert großartig mit Docker. Cool, dachte ich, ich werde mehrere Fliegen mit einer Klappe schlagen:
- üben Sie das Schreiben einer Docker-Datei
- Ich werde alle LaTeX-Pakete nach Docker migrieren (und es gibt viele davon und sie sind ziemlich schwer)
- üben Sie mit TravisCI
- Ich werde denen helfen, die plötzlich eines Tages meine Vorlage auf einem Nicht-Linux-Betriebssystem verwenden möchten
Das Schreiben einer Konfigurationsdatei für TravisCI, Dockerfile und das Bearbeiten von Makefile dauerte nicht lange und stellte sich als praktisch heraus.
Teil des Makefiles zum Ausführen eines in Docker erstellten Projekts:
... docker: docker build -t docker-latex . docker run -ti -v ${PWD}:/master-thesis:Z docker-latex bash -c "make build && make clean" docker run -ti -v ${PWD}:/master-thesis:Z docker-latex bash -c "make -C presentation && make -C presentation clean"
Jetzt konnte der Supervisor nicht nur meine Änderungen im Code sehen, sondern auch eine erfundene Version des Dokuments.

Veröffentlichungen
Nachdem ich das Diplom in der von mir benötigten Form abgeschlossen hatte, beschloss ich, die Vorlage analog zu meinem Bachelor-Abschluss mit der Community zu teilen. Es wurde beschlossen, die README-Datei des Repositorys wunderschön anzuordnen, da dies das Gesicht des Projekts ist. Die Person, die Ihr Projekt im Internet gefunden hat, sollte sofort mithilfe der README-Datei herausfinden, wie das Projekt zusammengestellt und was damit zu tun ist.

README.md Datei
Bald muss ich ein drittes Diplom schreiben und ich denke, dass sich meine Herangehensweise an das Schreiben überhaupt nicht ändern wird und ich sehr wenig Zeit mit der Gestaltung verbringen werde. Da ich von Linux zu Mac OS gewechselt bin, wird der Übergang völlig schmerzlos sein, da es einen Docker gibt.
Zusammenfassung
Das übliche Interesse an LaTeX ermöglichte es mir, etwas mehr in diesen Bereich einzutauchen:
- "Hand in Hand" bei der Arbeit mit LaTeX, was später beim Erstellen von Dokumenten und Präsentationen Zeit sparte
- Ich habe Erfahrungen mit Git und GitHub gesammelt, als ich mit diesen Lieblingsprojekten gearbeitet habe
- in der Praxis verwendet Dinge wie Docker und TravisCI, die mir einen guten Impuls gaben, wenn ich in DevOps eintauchte
- lernte, wie man ihre Lieblingsprojekte ordentlich arrangiert
Antworten auf mögliche Fragen
Warum speichern Sie PDF-Dateien im Repository?
Nur damit die Person, die in das Repository gegangen ist, nicht nur die Quelle, sondern auch das Ergebnis all dessen sehen kann, ohne die Version herunterzuladen.
Warum sind viele Dinge nicht vollständig automatisiert, wie z. B. die Bibliographie?
Aus dem einen oder anderen Grund bin ich nicht tiefer darauf eingegangen, vielleicht werden diejenigen verletzt, die Hunderte von Quellen für gebrauchte Literatur haben.
Entspricht die Vorlage GOST / DSTU?
Ich habe mich ausschließlich von den Anforderungen des Normocontrollers leiten lassen, also nicht wirklich.
Übersetzung des Artikels ins Englische ins Medium .