> 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/nl/meer-onderwerpen/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md).

# Hoe je een LaTeX-classfile schrijft en je eigen cv ontwerpt (Deel 1)

Deel 1 | [Deel 2](/latex/nl/meer-onderwerpen/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Auteur: James Allen (maart 2011)**

Iedereen wil een cv dat er professioneel uitziet, en er is geen tekort aan LaTeX-sjablonen die je er een kunnen geven. Als je echter net als ik bent, wil je je cv echt van jezelf maken en er iets eigens van maken. Dat betekent dat je zelf het uiterlijk en de opmaak moet kunnen aanpassen, wat in LaTeX berucht lastig kan zijn. In deze reeks blogposts hoop ik je te begeleiden bij het maken van je eigen aangepaste class-bestand en je te laten zien dat het eenvoudig kan zijn om je cv precies zo op te maken als jij wilt. We richten ons op een cv-stijl, maar de methoden zijn identiek voor elk soort document.

### Wat is een class-bestand?

Wanneer je schrijft `\documentclass{article}` in je LaTeX-bestand, neem je het class-bestand `article.cls`op. Dit definieert alle opdrachten zoals `\section` en `\title` die worden gebruikt om je document te structureren. Het configureert ook hoe deze opdrachten de opmaak en lay-out van de pagina beïnvloeden.

### Je eigen class-bestand instellen

De mooiste manier om het formaat van een document aan te passen is om al die informatie in een persoonlijk class-bestand te bewaren. Zo blijft de structuur van je document netjes gescheiden van de opmaak en is hergebruik eenvoudig. Dit is makkelijk in te stellen, dus maak een document genaamd cv.tex met de volgende inhoud:

```latex
\documentclass{my_cv}
\begin{document}
\section{Opleiding}
\subsection{Universiteit van Nergens}
\section{Werk}
\subsection{ABC Limited.}
\end{document}
```

Dit probeert je aangepaste class-bestand te laden `my_cv.cls`, dat nog niet bestaat. Maak `my_cv.cls` in dezelfde map als `cv.tex` en schrijf daarin de volgende regel:

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

Als je je document nu compileert, zou je de koppen in de standaard article-stijl moeten zien.

Dus wat is hier gebeurd? Class-bestanden moeten veel opmaakinformatie en interne instellingen bevatten om LaTeX goed te laten werken, maar we willen dat niet allemaal handmatig invoeren. In plaats daarvan kunnen we ons nieuwe class-bestand baseren op `article.cls`. We gebruiken `\LoadClass` om op te nemen `article.cls` en laden daarmee alle opdrachten en stijlen die daarin zijn gedefinieerd. Merk op dat we niet de gebruikelijke `\documentclass` opdracht gebruiken om `article.cls` toe te voegen, omdat `\documentclass` slechts één keer helemaal aan het begin van je LaTeX-document mag worden aangeroepen.

### LaTeX informeren over je class

Alle class-bestanden moeten beginnen met twee regels die lijken op de volgende, die je bovenaan `my_cv.cls` nu moet toevoegen:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 Mijn aangepaste cv-class]
```

De `\NeedsTeXFormat` opdrachten vertellen de compiler voor welke versie van LaTeX het pakket bedoeld is. De huidige versie van LaTeX is LaTeX2e en bijna alle distributies gebruiken dit.

De `\ProvidesClass` opdracht geeft de compiler wat informatie over je pakket. Het eerste argument moet overeenkomen met de bestandsnaam van je class-bestand en vertelt LaTeX hoe je pakket heet. Het tweede argument is optioneel en geeft een beschrijving van je class, die in het logbestand en elders zal verschijnen. De beschrijving moet beginnen met een datum in exact het bovenstaande formaat en het moet de datum zijn waarop het pakket voor het laatst is gewijzigd. Dit kan worden gebruikt bij het opnemen van de class om te controleren of je een voldoende recente versie hebt. Als je het bijvoorbeeld opneemt via `\documentclass{my_cv}[2012/01/01]` met een datum die nieuwer is dan de datum in de class-beschrijving, dan wordt een waarschuwing getoond dat de class verouderd is.

### De sectiekoppen aanpassen

De standaard koppen van artikelsecties zijn eigenlijk niet echt geschikt voor een cv, dus zouden we ze graag vervangen door iets netters. Om dit te doen kunnen we de `\section` opdracht opnieuw definiëren om een aangepaste kop uit te voeren.

Gelukkig is er al een uitstekend pakket genaamd `titlesec` dat een eenvoudige manier biedt om onze kopstijlen aan te passen. Voeg dit in je class-bestand toe met:

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

Merk op dat we `\RequirePackage` moeten gebruiken in plaats van de gebruikelijke `\usepackage` opdracht, omdat we in een class-bestand zitten. De `\RequirePackage` opdracht zorgt ervoor dat elk pakket slechts één keer wordt geladen, zelfs als het meerdere keren wordt aangeroepen vanuit verschillende stijl- en class-bestanden.

De `titlesec` pakket biedt de opdracht `\titleformat` waarmee we onze sectiekoppen kunnen aanpassen. Voeg het volgende toe aan het einde van `my_cv.cls` om de opmaak van de kop aan te passen:

```latex
\titleformat{\section}         % Pas de \section-opdracht aan
  {\Large\scshape\raggedright} % Maak de \section-koppen groot (\Large),
                               % kleine kapitalen (\scshape) en links uitgelijnd (\raggedright)
  {}{0em}                      % Kan worden gebruikt om een voorvoegsel toe te voegen aan alle secties, zoals 'Sectie ...'
  {}                           % Kan worden gebruikt om code in te voegen vóór de kop
  [\titlerule]                 % Voegt een horizontale lijn in na de kop
```

Als we `cv.tex` nu compileren, zien we dat we enkele hoofdkoppen hebben die geschikter zijn voor een cv:

![Screenshot1.png](/files/903340eb0448faab6dced58fa68a463e703c0d12)

We kunnen de \subsection-koppen ook aanpassen:

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

De subsecties staan nu in dezelfde stijl:

![Screenshot2.png](/files/75444c1e048ab828948c60b3239e8e141b1623f3)

Je zou wat van de beschikbare opmaakopties moeten uitproberen om te zien wat je mooi vindt:

* `\bfseries`, `\itshape`: maak de kop vet of cursief;
* `\scshape`: kleine kapitalen;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: stel de lettergrootte in;
* `\rmfamily`, `\sffamily`, `\ttfamily`: stel het lettertype respectievelijk in op serif, sans serif of monospace.

### Datums toevoegen aan sectiekoppen

We kunnen enkele nieuwe opdrachten definiëren waarmee we datums in onze sectiekoppen kunnen opnemen. Voeg het volgende toe aan je class-bestand:

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

Dit definieert twee nieuwe opdrachten `\datedsection` en `\datedsubsection` die twee argumenten nemen: de sectienaam zoals hiervoor, en een datum die rechts op de pagina wordt gezet. De `\hfill` opdracht vertelt LaTeX om zoveel mogelijk ruimte op te vullen en duwt daardoor het tweede argument (`#2`) naar de rechterkant van de pagina. Pas `cv.tex` aan om deze opdrachten te gebruiken:

```latex
\documentclass{my_cv}

\begin{document}

\section{Opleiding}
\datedsubsection{Universiteit van Nergens}{2004--2008}
Ik heb van 2004 tot 2008 aan de Universiteit van Nergens gestudeerd.

\section{Werk}
\datedsubsection{ABC Limited.}{2008--Nu}
Ik werk sinds 2008 bij ABC Limited.

\end{document} ​
```

Ons cv bevat nu datums:

![Screenshot3.png](/files/05177a0bb189c27faa1b84a6b4a2d0ce388fe0c4)

### Conclusies

Dat is alles voor deel één van deze gids, maar hopelijk heb ik genoeg behandeld zodat je ermee aan de slag kunt gaan en nuttige class-bestanden kunt maken. Er waren niet veel opdrachten nodig om iets te creëren dat al op een redelijk cv-sjabloon lijkt, en we hebben nog maar nauwelijks het oppervlak geraakt van wat we verder nog zouden kunnen aanpassen. In de volgende delen van deze gids zal ik het hebben over het doorgeven van opties aan je class om deze te configureren, het maken van een mooie titel en hoe je enkele algemene lay-outopties instelt.

Bedankt voor het lezen!

Merk op dat ik zelf nog relatief nieuw ben in het maken van class-bestanden, dus als iemand betere manieren kan aanwijzen om de dingen te doen die ik hier heb genoemd, laat het me dan gerust weten.

Deel 1 | [Deel 2](/latex/nl/meer-onderwerpen/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/nl/meer-onderwerpen/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.
