6.3 KiB
@slide(layout=chapter-slide)
@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 and front matter
- includes separate sections with
\input{path/to/file}or
\include{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}
@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.
% …
@slide(layout=two-columns)
@title
input or include?
@column-one
\input{path/to/file}
- file extension
.texmay be added - nesting possible: nested files can again be embedded using
\input{} - file is added to the resulting document without a page break
@column-two
\include{path/to/file}
- file extension
.texmust not be added - no nesting possible
- each subfile starts a new page in the resulting document
- advantage for larger projects:
\includeonly{file1,file2,...}can be used in the preable to compile only certain subfiles (the entire project has to be compiled at least once before)
@slide(layout=content-and-preview-with-category)
@category Excursion
@title Specifying file paths 👣
@content
- important for
\input{}and\include{}, later also for pictures - file and folder structure = tree structure 🌳
@slide(layout=content-and-preview-with-category)
@category Excursion
@title Specifying file paths 👣
@content
Absolute paths
- path from the root directory to a file
- the direcories are separated by special characters:
- in UNIX:
/ - in Windows:
\
- in UNIX:
absolute path for `main.tex`
- UNIX:
/home/knut/docs/latex/main.tex - Windows:
C:\knut\docs\latex\main.tex
In **LaTeX,** you have to use UNIX-style paths. Therefore, we will use those from here on.
@slide(layout=content-and-preview-with-category)
@category Excursion
@title Specifying file paths 👣
@content
Relative paths
- path from somewhere in the tree to a certain file
- shorter + less typing! ☺
- with
\input{}and\include{}, you can specify the path relative to the main file
Relative path \ from `main.tex` to `part1.tex`
./part1.tex
A single dot ‘.’ in a relative path represents the current folder (in this case: latex). It is optional, you could also write part1.tex here.
@slide(layout=content-and-preview-with-category)
@category Excursion
@title Specifying paths 👣
@content
Relative paths
Relative path from `main.tex` to `part1.tex` in subfolder
./sections/part1.tex
@slide(layout=content-and-preview-with-category)
@category Excursion
@title Specifying paths 👣
@content
Relative paths
Relative path from `main.tex` in its own subfolder to `part1.tex` in another subfolder
../sections/part1.tex
Two dots ‘..’ represent the parent folder of the current folder (in this case: latex, parent of main).
@slide(layout=content-only)
@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 don’t have a preamble.
@slide(layout=content-and-preview)
@title Outsourcing the preamble
@content What do you think happens when we outsource the preamble into its own subfile?
Will the document compile?
++ Yes, it will!
A simple way of keeping the main file even more organised.
@slide(layout=task)
@task-number 3
@title A structured project
@content
- Remove the preamble, both of the
documentlines, and the table of contents fromallgemeines.tex. - ++ Compile
l2kurz.texinstead—it is going to be our main file from now on. The fileallgemeines.texis already included and will be compiled automatically. - ++ The main file is very complex. Outsource all the commands that come before the document environment (
\begin{document}) into a new filepreamble.texand include it with\input{preamble}. - ++ Technical note: When a popup opens during compilation, please choose option “(c) use the default command.”
@slide(layout=task)
@task-number 3
@title A structured project
@content
- To avoid long compilation times, you should should only include the sections
einleitung.texandallgemeines.texfor now. - ++ For this purpose, replace all of the other
\inputstatements insidel2kurz.texby\includestatements und then use\includeonly. - ++ Caution: The preamble still needs to be included via
\input. - ++ Put the
\includeonlystatement directly above\begin{document}.