@slide(layout=chapter-slide) @number 0 @title First steps with LATEX @content In order to compile the script for this tutorial, a few steps have to be followed, which are explained in the next slides. @slide(layout=content-only) @title Digression: Opening a command prompt @content * For the following tasks, we are going to need a command prompt * It can be opened in different ways, depending on your operating system * **Windows**: Press the Windows key and type in *cmd*, press Enter * **MacOS**: Press the *Command* key and the *space bar* simultaneously, then type in *Terminal* and double click on *Terminal* * **Linux**: Press ``Ctrl + Alt + T`` @slide(layout=content-only) @title Installing the compiler @content * The compiler translates our LATEX code into a PDF * Depending on your operating system, different compilers are available * Windows: MikTEX * macOS: MacTEX * Linux distributions: TEXLive * Debian-based distributions: run `sudo apt install texlive-full` * other distributions: see the TEXLive website
Make sure to install the full version with all packages, if you can!
@slide(layout=content-only) @title Installing the editor @content * An editor can downloaded once the compiler has been installed * For editing LaTeX documents, any text editor works fine, e.g., Notepad++, VSCode * For beginners, TEXstudio is recommended due to its LaTeX-specific features * Download and install TEXstudio @slide(layout=content-only) @title Compile the script for the first time @content * Download the project archive from the VC. * Unzip the archive. * Open the file `main.tex` in TEXstudio. It is located in the root directory of the archive. * Compile `main.tex` by pressing * A few new files will be generated by the compilation.
Windows users: In order to enable file endings, click the view tab in the file explorer, and select *file name extensions*. This helps differentiating the different ``main`` files.
@slide(layout=content-and-preview) @title Listings @content We have multiple examples of LaTeX source code in the script. As a default setting, we use the package **listings** for displaying them. * However, the package **minted** generates more appealing listings. * Minted requires additional configuration, like the installation of the programming language **Python 3** and the package **Pygments** * The following slides explain how to use `minted` for this LaTeX project @preview ![](svg/chapter-10/minted-overview-english-crop.svg){ .thin-padding} @slide(layout=content-only) @title Installation of Python 3 @content * Check if Python is already installed on your operating system using a command prompt: ``` {.lang-sh .hljs} python --version ``` * If installed, the output should look similar to this (the exact version may deviate): ``` {.lang-sh .hljs} Python 3.10.6 ``` * If not installed, follow the instructions for your operating sytem on the **[website](https://www.python.org/)**. * Make sure to enable the option to add Python to your PATH, if possible. * Run the above-mentioned command to ensure the installation was successful. @slide(layout=content-only) @title `Pygments` and compiler command settings @content * Install the **Pygments** by executing the following command in a command prompt: pip install Pygments * In TeXstudio, navigate to Options → Configure TeXstudio → Commands * Next to the PdfLaTeX label, add the ``shell-escape`` flag to the compiler command: pdflatex -synctex=1 -interaction=nonstopmode **\-\-shell-escape** %.tex
Passing the flag ``--shell-escape`` to your compiler can be a potential security risk. **Only do it for documents you trust!**
@slide(layout=content-and-preview) @title Change the listings mode @content In order to compile the script using `minted`, the listings mode has to be changed. * Create a new file in the root directory of the project archive, named `listings-mode.tex` * Insert the following command into the newly created file ``` {.lang-tex .tex .hljs} \newcommand\listingsmode{minted} ``` * Compile `main.tex` again by pressing @preview
![](images/code-listing-default.png) ![](images/code-listing-minted.png)
``listings`` (top) vs. ``minted`` (bottom)