use local registry for ci
This commit is contained in:
parent
26bf591759
commit
d8c0baf1e1
3 changed files with 28 additions and 25 deletions
|
@ -1,11 +1,14 @@
|
|||
image: mirisbowring/texlive_ctan_full:2019
|
||||
image: registry.gitlab.com/flukx/latexwisdom:latest
|
||||
|
||||
compiling:
|
||||
pdf:
|
||||
script:
|
||||
# use settings from .latexmkrc
|
||||
- latexmk
|
||||
- mv out/main.pdf latexwisdom.pdf
|
||||
- mv .maindir/out/main.pdf .maindir/latexwisdom-en.pdf
|
||||
- sed -i 's#newcommand{\\de}{}#newcommand{\\de}{_de}#' .maindir/tex/main.tex
|
||||
- latexmk
|
||||
- mv .maindir/out/main.pdf .maindir/latexwisdom-de.pdf
|
||||
artifacts:
|
||||
paths:
|
||||
- "latexwisdom.pdf"
|
||||
expire_in: 40 weeks
|
||||
- "latexwisdom-en.pdf"
|
||||
- "latexwisdom-de.pdf"
|
||||
|
|
20
README
20
README
|
@ -1,20 +0,0 @@
|
|||
To compile any part of this document go to the directory tex and run
|
||||
latexmk -lualatex to-be-compiled-file.tex
|
||||
In order to compile the entire thesis, run
|
||||
latexmk -lualatex main.tex
|
||||
|
||||
Die Hauptdatei (das ganze Dokument) ist tex/main.tex. Es beinhaltet mit einem modifizierten \input-Befehl die verschiedenen Kapitel. Alle Dateien mit LaTeX-Code liegen in /tex. Die tikz-Zeichnungen liegen im Ordner /zeichnungen. (Auf branch master z.Z. keine vorhanden.)
|
||||
|
||||
Man kann jede Datei im Ordner /tex einzeln kompilieren. Dafür sind einige Hürden zu nehmen gewesen:
|
||||
• Pfade von Dateien, die mit \input eingebunden werden, müssen funktionieren, egal, wo die Datei liegt. Das ist dadurch gelöst, dass alle \input-Anweisungen durch \maininput, \textinput, \tikzinput ersetzt wurden. Diese setzen ".maindir/" vor den Pfad. Das ist ein symlink, der in allen Ordnern liegt und jeweils zum Hauptordner referenziert. Diese Links können automatisch erzeugt werden mit dem python-skript .maindir/scripts/maindircreate.py (muss im Hauptordner ausgeführt werden).
|
||||
• Die Präambel darf nur einmal eingebunden werden. Um dies zu erreichen, fügt keine Datei die Präambel direkt ein (mit input), sondern alle Dateien binden mit \input{.maindir/tex/header/preamble-section} einen Wrapper ein, der die Präambel nur lädt, wenn der Wrapper bisher noch nicht aufgerufen wurde. Dort werden auch die Ersatzbefehle für \begin und \end{document} definiert: docStart und docEnd. Damit docEnd im richtigen Fall das Dokument beendet läuft der counter filedepthScript mit, der anzeigt, in welcher Einfügetiefe wir uns befinden.
|
||||
• Der Counter filedepthScript wird erstellt in der Präambel (die nur einmal aufgerufen wird), erhöht und verringert beim Aufruf von \maininput (und damit auch bei \textinput und \tikzinput). Im gerade kompilierten "Hauptdokument" ist der Counter auf 0, in allen weiteren auf >0.
|
||||
• \docStart und \docEnd hätten eigentlich ein environment sein sollen. Dabei gab es aber den Fehler, dass dieses Environment angeblich nicht beendet wurde bevor das Dokument mit \end{document} beendet wurde. Interessanterweise konnte ich den Fehler aber nicht zuverlässig reproduzieren, sondern nur bei Dateien, die keine weiteren eingefügt haben oder irgendeine andere irrelevante Eigenschaft haben.
|
||||
|
||||
• Die Datei tex/_TEMPLATE.tex beinhaltet die Dinge, die in jede (Unter-)datei, die auch alleine kompilieren soll, rein muss. Beim erstellen eines neuen Kapitels kopiert man also _TEMPLATE.tex.
|
||||
|
||||
• In order to have a clean repo without all the cluttering temporary latex files there exists the .latexmkrc file in the main directory and a symlink to it in the /tex directory. It specifies to put these files into /out, no matter where you are (thanks to .maindir) and to use lualatex.
|
||||
|
||||
• If you work with gitlab you can use the CI. For this there is the .gitlab-ci.yml file that tells gitlab to compile the main file and make it avaiable as an artifact. Then it is avaiable under the api link
|
||||
https://your.gitlab.instance.de/api/v4/projects/your-project-id/jobs/artifacts/master/raw/main.pdf?job=compiling
|
||||
You get the project id visible on the main page of your project. master is the branch you want to use for that continous compiling and compiling is the name of the job, specified in the .gitlab-ci.yml. main.pdf is the name of the file generated, specified via the main tex-file name and the .latexmkrc.
|
20
README.md
Normal file
20
README.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
# LaTeX Wisdom
|
||||
|
||||
*für Deutsch s. unten*
|
||||
|
||||
In this document I have collected some experiences with LaTeX.
|
||||
For further idea behind it, read the result.
|
||||
|
||||
You can read the [document in English](https://gitlab.com/api/v4/projects/10234469/jobs/artifacts/master/raw/latexwisdom-en.pdf?job=pdf)
|
||||
|
||||
Please note that some sections are only understandable if you read the source code.
|
||||
|
||||
## Deutsch
|
||||
|
||||
In diesem Dokument schreibe ich auf, was ich so über die LaTeX Nutzung gelernt habe.
|
||||
|
||||
Ein paar Teile sind ins Deutsche übersetzt.
|
||||
Diese in deutsch und den Rest in Englisch findest du [hier](https://gitlab.com/api/v4/projects/10234469/jobs/artifacts/master/raw/latexwisdom-de.pdf?job=pdf)
|
||||
Bitte beachte, dass einige Abschnitte nur verständlich sind, wenn man den Quellcode liest.
|
||||
|
||||
|
Loading…
Reference in a new issue