\chapter{Source code listings} \label{sec:source-code-listings} There are many ways in \LaTeX{} to display source code. We have come to appreciate the package \pkg{minted}, which causes some additional installation overhead, but generates very appealing source code renderings. However, especially on macOS, the installation of \pkg{minted} has caused a lot of headache in the early days of this workshop. That's why we will also have a look at an alternative called \pkg{listings}. \paragraph{A note on colors.} Both of these packages require you to define colors. We can recommend using the \pkg{xcolor} package. There are very helpful resources\footnote{If you would like to specify your own colors , these pages might help you: \url{https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX} for a list of pre-defined colors in the \pkg{xcolor} package, \url{https://mmoredo.github.io/latex-color-converter/} for defining your own colors} available online such that we will not go into details here. \section*{Source code listings within this script} This script uses the package \pkg{listings} as default way for displaying source code listings, since, as mentioned above, it causes less headache, especially on macOS. As we introduce \pkg{minted} as an alternative package, naturally, this script can also display source code listings rendered by \pkg{minted}. To switch between the packages, you can change the listings mode to \pkg{minted} like so: First of all, follow the respective installation instructions. Afterwards, create a new file called \file{listings-mode.tex} in the root directory of this project, and insert the following line into the newly created file: \codeblock{latex}{./listings/source-code-listings/change-listings-mode.tex} After compiling the script, you should see differently rendered source code listings. If you want to return to \pkg{listings} as package for rendering your source code listings, just replace \sh{minted} with \sh{default} in the \file{listings-mode.tex} file. Source code listings within this script are then displayed using the \pkg{listings} package again. \input{./content/source-code-listings-minted} \input{./content/source-code-listings-listings}