Using GitLab to build LaTeX

Generating documents in PDF form is becoming the standard nowadays, but how to generate them easily when they’re mostly free format? One of the goals of the Offensive Security Certified Professional (OSCP) Certification is writing a report based on the evidence you find. This is where LaTeX comes into the picture as you can easily have multiple files with data and one or more TeX-files combining this into a proper document. The question than also comes “How to optimise this pipeline?”

The first step is to see every report as a git repository where you can store and version all data. And running rubber locally solves the problem to quickly create a PDF from your sources, but wouldn’t it be nice of this part also could be automated? Who didn’t make a last moment change and forgot to run rubber if the document would still compile into a PDF? GitLab CI can luckily also compile LaTeX into a PDF and the notification if your update broke the build process comes for free.

The example .gitlab-ci.yml below for my latex-test repository generates a PDF that is being kept for one week and then you need to generate the document again.

stages:
  - build

compile_pdf:
  stage: build
  image: aergus/latex
  script:
    - latexmk -pdf main.tex
  artifacts:
    expire_in: 1 week
    paths:
      - main.pdf

This example can also be included as part of another project as compile_pdf is triggered in the build phase of the pipeline. No project has to be shipped without a digital document anymore.

PediaPress

Gedrukte boeken
Gedrukte boeken

Bij vele Mediawiki-projecten zoals Wikibooks en Wikipedia is het voor gebruikers die zijn ingelogd al een tijdje mogelijk om PDF-documenten te maken van je favoriete artikelen. Hierbij is een van de mogelijkheden om een daadwerkelijk boek te maken en te laten afdrukken in boekvorm. PediaPress, zoals het bedrijf heet, is hiermee dus de schakel tussen de oude en nieuwe wereld.

Projecten zoals vrije leermiddelen van Stichting Vrijschrift hebben ineens de mogelijkheid om scholen toegang te geven tot vrije leermiddelen in boekvorm. Hiermee zijn werken in het publieke domein ook ineens weer beschikbaar in PDF- en papiervorm tegen een betaalbare prijs. Want 15 euro voor een boek van circa 300 pagina’s is zeer redelijk te noemen en het roept de vraag op wanneer er vrije content op een compact disc kan worden verkregen.