Introduction
So I just finished my final project to get the "Swiss Certificate of Competence" in software development. That project consists of two major parts: Writing software and documenting it.
The software part was a Redmine plugin, which you can find here. The more important part, the documentation, you can find here. After small deliberation I decided to write it in LaTeX, based on a template. This articles goal is to share my experience with LaTeX.
What is LaTeX?
LaTeX is another way to write documents, like MS Word or Google Docs. But instead of the "What you see is what you get" approach taken by those editors, it takes a completely different one: You "code" the text. That leads to very fast (and mouse-less) writing, which has highly specialized results. For example, my documentation for the finals, had a chapter about the tools I was using. The source code for it looked like this:
\newpage
\section{Entwicklungsumgebung}
\subsection{Versionierung}
Für die Versionierung wird Git verwendet. Dabei wird GitHub als Remote-Repository verwendet. Das Repository mit
dem Source-Code kann unter \url{https://github.com/aneshodza/gnosis} gefunden werden. Für eine genauere Beschreibung
der Versionierung siehe Kapitel \ref{sec:versioning}.
\subsection{IDE}
Als IDE wird vim mit verschiedenen Plugins verwendet. Bestimmte Sachen wurden in der \bgmintinline{bash}{.vimrc} Datei
konfiguriert, damit die Arbeit möglichst effizient ist. \newline
Diese Konfigurationen sind unter \newline
\url{https://github.com/aneshodza/.dotfiles/blob/ad87ee9ecc5588a59d66e211797792099569ca95/.vimrc} zu finden.
\subsection{CI/CD}
Für die CI/CD Pipeline wird SemaphoreCI verwendet. Das ist passend, da auch die PA sehr eng mit SemaphoreCI verbunden
ist.
Which turned into this:
You can see: automatic page enumeration, showing the current date, numerated titles, professional font and a lot more.
To be fair, that was achieved by using a template, but that's how LaTeX is supposed to be operated: You pick a nice template and write your documentation based on that.
The advantages of LaTeX
LaTeX has a wide variety of advantages to software developers, especially which are in education.
Uniform and professional designs
Every documentation written in LaTeX can look the same, have the same formatting and the same feel, as long as the same template is always used.
Something that helped me a lot in my finals: There were a lot of points given by simply conforming to formatting rules (like having a header with the title, page enumeration, the current date in the footer) etc. All things that were done for me, simply by using a template.
Git versioning
Having a safe versioning of your documentation may not be a bad idea. While you can also do the same with docx files, versioning LaTeX files is seamless due to the text being written and stored as actual text. Diffs just show that a binary file has been changed, but you can't really retrace your steps:
While in LaTeX, that looks a lot better:
Work speed
The speed at which you can write documentation is a lot faster in LaTeX that most WYSIWYG editors. You can write it completely on the keyboard and even use your fancy code editors (like the most supreme: vim). Language servers make things like cross referencing very easy and other things like a table of contents or a bibliography are generated (and in the case of the bibliography even alphabetically sorted).
After getting a grip on LaTeX you will feel the speed at which you write documentation going up.
Conclusion
My personal experience with LaTeX is overall very positive and I would definitely suggest every student to learn it. My finals look very professional and conform to every formatting standard expected from it.
Top comments (2)
The look of LaTeX articles... is just beautiful. it really worth it <3
Agreed, the look of LaTeX articles is unmatched