2023-11-18 01:26:09 +01:00

4.4 KiB
Raw Blame History

@slide(layout=chapter-slide)

@number 4

@title Project structure

@slide(layout=content-and-preview)

@title Goal

@content Create a bigger LaTeX project and …

  • prevent LaTeX documents from growing monstrously 👹
  • keep the overview over the project structure

@preview {style="padding: .2em; height: 100vh"}

@slide(layout=content-and-preview)

@title Main file 👑

@content

  • contains basic structure
  • includes separate sections with
    \input{path/to/file}
\documentclass{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\title{A Title}
\begin{document}
    \maketitle
    \tableofcontents
    \input{section1.tex}
    \input{section2.tex}
\end{document}

@preview

@slide(layout=content-and-preview)

@title File with a section

@content

  • contains no preamble
  • contains no \begin{document} or \end{document}
\section{This is section 1}
A paragraph about the content 
of section 1.

% …
\section{This is section 2}
A paragraph about the content 
of section 2.

% …

@preview {.thin-padding}

@slide(layout=content-and-preview-with-category)

@category Excursion

@title Specifying file paths 👣

@content

  • important for \input{}, but later also for other media types
  • file and folder structure = tree structure 🌳
  • with \input{}, you can specify the path relative to the main file

In **LaTeX,** you have to use UNIX-style paths. They are separated by a forward slash: `path/to/file`. We will use those from here on.

@preview

@slide(layout=content-and-preview-with-category)

@category Excursion

@title Specifying file paths 👣

@content

`main-exercises.tex` → `praeamble.tex`

`./praeamble.tex`

A single dot . represents the current folder (in this case: latex-skript). It is optional, you could also write praeamble.tex here.

@preview

@slide(layout=content-and-preview-with-category)

@category Excursion

@title Specifying file paths 👣

@content

`main-exercises.tex` → `basic-document-structure.tex` (in a subfolder)

./content/basic-document-structure.tex

@preview

@slide(layout=content-and-preview-with-category)

@category Excursion

@title Specifying file paths 👣

@content

`basic-functionality.tex` → `graphics.raw.tex`

(`basic-functionality.tex` is imported into `main-exercises.tex`)

./exercises/graphics/graphics.raw.tex

Paths are always relative to the root document that imports other files as fragments.

@preview

@slide(layout=content-only-with-category)

@category Demo

@title Compiling the project

@content

  • Only the main file has to be compiled to get the complete PDF document.
  • ++ Error messages include a reference to the corresponding subfile.
  • ++ Subfiles cannot be compiled on their own as they dont have a preamble.
From now on, we will compile the file `main-exercises.tex` in the project root. To do so, right click on the file in TeXstudio and choose **“Select as explicit root document”** from the dropdown. Next, compile as usual.

@slide(layout=task)

@task-number 4

@title A structured project

@content You will find a file named main.tex in the folder exercises/project-structure.

  • Put the sections of the file into separate files, named section1.tex and section2.tex.
  • Include them using the \input command.
  • Move the preamble to its own file in a similar fashion.
  • Finally, have a look at the general project archive, starting from main-exercises.tex (in the root folder of the project archive). How do we include the different sections here?