> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/de/weitere-themen/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md).

# Wie man eine LaTeX-Klassendatei schreibt und seinen eigenen Lebenslauf gestaltet (Teil 1)

Teil 1 | [Teil 2](/latex/de/weitere-themen/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Autor: James Allen (März 2011)**

Jeder möchte einen professionell aussehenden Lebenslauf, und es gibt keinen Mangel an LaTeX-Vorlagen, die Ihnen einen erstellen. Wenn Sie jedoch wie ich sind, möchten Sie Ihren Lebenslauf besitzen und ihn zu Ihrem eigenen machen. Das bedeutet, dass Sie in der Lage sein müssen, das Aussehen und Layout selbst anzupassen, was in LaTeX notorisch schwierig sein kann. In dieser Blogpost-Reihe möchte ich Sie dabei begleiten, Ihre eigene benutzerdefinierte Klassendatei zu erstellen, und Ihnen zeigen, dass es ganz einfach sein kann, Ihren Lebenslauf genau so zu formatieren, wie Sie es möchten. Wir konzentrieren uns auf einen Lebenslauf-Stil, aber die Methoden sind für jede Art von Dokument identisch.

### Was ist eine Klassendatei?

Wenn Sie schreiben `\documentclass{article}` in Ihrer LaTeX-Datei binden Sie die Klassendatei `article.cls`. Dies definiert alle Befehle wie `\section` und `\title` die zur Strukturierung Ihres Dokuments dienen. Außerdem wird festgelegt, wie sich diese Befehle auf das Format und das Layout der Seite auswirken.

### Einrichten Ihrer eigenen Klassendatei

Die eleganteste Art, das Format eines Dokuments anzupassen, besteht darin, alle diese Informationen in einer persönlichen Klassendatei zu speichern. Dadurch bleibt die Struktur Ihres Dokuments sauber vom Layout getrennt und kann leicht wiederverwendet werden. Es ist einfach, das einzurichten, also erstellen Sie ein Dokument namens cv.tex mit dem folgenden Inhalt:

```latex
\documentclass{my_cv}
\begin{document}
\section{Ausbildung}
\subsection{Universität Nirgendwo}
\section{Berufserfahrung}
\subsection{ABC Limited.}
\end{document}
```

Hier wird versucht, Ihre benutzerdefinierte Klassendatei zu laden `my_cv.cls`, die noch nicht existiert. Erstellen Sie `my_cv.cls` im selben Verzeichnis wie `cv.tex` und schreiben Sie die folgende Zeile hinein:

```latex
\LoadClass{article}
```

Wenn Sie Ihr Dokument jetzt kompilieren, sollten Sie die Überschriften im Standardstil der article-Klasse sehen.

Was ist hier also passiert? Klassendateien müssen eine Menge Formatierungsinformationen und interne Einstellungen enthalten, damit LaTeX korrekt funktioniert, aber wir wollen nicht alles manuell eingeben müssen. Stattdessen können wir unsere neue Klassendatei auf `article.cls`. Wir verwenden `\LoadClass` einzufügen `article.cls` und laden alle darin definierten Befehle und Stile. Beachten Sie, dass wir nicht den üblichen `\documentclass` Befehl zum Einbinden verwenden `article.cls` weil `\documentclass` sollte nur einmal ganz am Anfang Ihres LaTeX-Dokuments aufgerufen werden.

### LaTeX über Ihre Klasse informieren

Alle Klassendateien sollten mit zwei Zeilen beginnen, die den folgenden ähnlich sind und die Sie oben in `my_cv.cls` nun hinzufügen sollten:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 Meine benutzerdefinierte Lebenslaufklasse]
```

Die `\NeedsTeXFormat` Befehle teilen dem Compiler mit, für welche Version von LaTeX das Paket gedacht ist. Die aktuelle Version von LaTeX ist LaTeX2e und fast alle Distributionen verwenden diese.

Die `\ProvidesClass` Der Befehl gibt dem Compiler einige Informationen über Ihr Paket. Das erste Argument sollte dem Dateinamen Ihrer Klassendatei entsprechen und teilt LaTeX mit, wie Ihr Paket heißt. Das zweite Argument ist optional und enthält eine Beschreibung Ihrer Klasse, die im Protokoll und an anderen Stellen erscheinen wird. Die Beschreibung muss mit einem Datum genau im obigen Format beginnen und sollte das Datum der letzten Änderung des Pakets sein. Dies kann verwendet werden, wenn die Klasse eingebunden wird, um zu prüfen, ob Sie eine ausreichend aktuelle Version davon haben. Wenn Sie sie beispielsweise über `\documentclass{my_cv}[2012/01/01]` mit einem Datum, das neuer ist als das Datum in der Klassenbeschreibung, wird eine Warnung angezeigt, dass die Klasse veraltet ist.

### Ändern der Abschnittsüberschriften

Die standardmäßigen Abschnittsüberschriften von article passen eigentlich nicht gut zu einem Lebenslauf, daher würden wir sie gern durch etwas Schöneres ersetzen. Dazu können wir den `\section` Befehl neu definieren, um eine benutzerdefinierte Überschrift auszugeben.

Glücklicherweise gibt es bereits ein hervorragendes Paket namens `titlesec` das eine einfache Möglichkeit bietet, unsere Überschriftstile anzupassen. Binden Sie es in Ihre Klassendatei mit ein:

```latex
\RequirePackage{titlesec}
```

Beachten Sie, dass wir `\RequirePackage` statt des üblichen `\usepackage` Befehls verwenden sollten, da wir uns in einer Klassendatei befinden. Das `\RequirePackage` Der Befehl stellt sicher, dass jedes Paket nur einmal geladen wird, selbst wenn es mehrfach von verschiedenen Stil- und Klassendateien aufgerufen wird.

Die `titlesec` Paket stellt den Befehl `\titleformat` zur Verfügung, mit dem wir unsere Abschnittsüberschriften anpassen können. Fügen Sie Folgendes am Ende von `my_cv.cls` hinzu, um das Format der Überschrift anzupassen:

```latex
\titleformat{\section}         % Den \section-Befehl anpassen
  {\Large\scshape\raggedright} % Die \section-Überschriften groß (\Large),
                               % in Kapitälchen (\scshape) und linksbündig (\raggedright)
  {}{0em}                      % Kann verwendet werden, um allen Abschnitten ein Präfix zu geben, z. B. 'Abschnitt ...'
  {}                           % Kann verwendet werden, um vor der Überschrift Code einzufügen
  [\titlerule]                 % Fügt nach der Überschrift eine horizontale Linie ein
```

Wenn wir `cv.tex` jetzt kompilieren, werden wir sehen, dass wir einige Hauptüberschriften haben, die besser zu einem Lebenslauf passen:

![Screenshot1.png](/files/0d8523fbbfaae5f93686554a4829caf4656ecfbe)

Wir können auch die \subsection-Überschriften anpassen:

```latex
\titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
```

Die Unterabschnitte sind jetzt im selben Stil:

![Screenshot2.png](/files/1efa970c13a79b53f13ac633d3e269ddb4562efc)

Sie sollten einige der verfügbaren Formatierungsoptionen ausprobieren, um zu sehen, was Ihnen gefällt:

* `\bfseries`, `\itshape`: die Überschrift fett oder kursiv machen;
* `\scshape`:Kapitälchen;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: die Schriftgröße festlegen;
* `\rmfamily`, `\sffamily`, `\ttfamily`: den Schriftstil jeweils auf serifenhaltig, serifenlos oder Schreibmaschine setzen.

### Daten zu Abschnittsüberschriften hinzufügen

Wir können einige neue Befehle definieren, die es uns ermöglichen, Daten in unsere Abschnittsüberschriften aufzunehmen. Fügen Sie Folgendes in Ihre Klassendatei ein:

```latex
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Dies definiert zwei neue Befehle `\datedsection` und `\datedsubsection` die zwei Argumente annehmen: den Abschnittsnamen wie zuvor und ein Datum, das auf der rechten Seite der Seite gesetzt wird. Der `\hfill` Befehl weist LaTeX an, so viel Platz wie möglich zu füllen, und schiebt so das zweite Argument (`#2`) an den rechten Rand der Seite. Ändern Sie `cv.tex` um diese Befehle zu verwenden:

```latex
\documentclass{my_cv}

\begin{document}

\section{Ausbildung}
\datedsubsection{University of Nowhere}{2004--2008}
Ich besuchte die University of Nowhere von 2004 bis 2008.

\section{Berufserfahrung}
\datedsubsection{ABC Limited.}{2008--Now}
Ich habe ab 2008 bei ABC Limited gearbeitet.

\end{document} ​
```

Unser Lebenslauf enthält jetzt Daten:

![Screenshot3.png](/files/947dce9c2e6a8ca1801005a6592f7546d470753b)

### Fazit

Das war alles für Teil eins dieses Leitfadens, aber hoffentlich habe ich genug abgedeckt, damit Sie loslegen und nützliche Klassendateien erstellen können. Es waren nicht viele Befehle nötig, um etwas zu erstellen, das bereits wie eine brauchbare Lebenslaufvorlage aussieht, und wir haben nur an der Oberfläche dessen gekratzt, was wir noch anpassen könnten. In den nächsten Teilen dieses Leitfadens werde ich darüber sprechen, wie man Optionen an Ihre Klasse übergibt, um sie zu konfigurieren, einen schönen Titel erstellt und wie man einige allgemeine Layoutoptionen festlegt.

Danke fürs Lesen!

Beachten Sie, dass ich selbst relativ neu im Erstellen von Klassendateien bin. Wenn also jemand bessere Wege aufzeigen kann, die hier erwähnten Dinge zu tun, lassen Sie es mich bitte wissen.

Teil 1 | [Teil 2](/latex/de/weitere-themen/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/de/weitere-themen/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
