> 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/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md).

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

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

**Auteur: Cody Herring (juni 2013)**

Dit is een voortzetting van [Hoe je een LaTeX-klassebestand schrijft en je eigen cv ontwerpt (Deel 1)](/latex/nl/meer-onderwerpen/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), waarbij we meer opties bekijken voor het maken van een cv en daarbij klassebestanden gebruiken.

In de vorige post hadden we 2 bestanden gemaakt: `cv.tex` en `my_cv.cls`. Het conten-bestand, `cv.tex`, bevatte het volgende:

```latex
\documentclass{my_cv}
\begin{document}
\section{Opleiding}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Werk}
\datedsubsection{ABC Limited}{2008-Nu}
\end{document}
```

`my_cv.cls` bevatte enkele standaard opmaakinstellingen, evenals enkele opdrachten om te gebruiken:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 custom CV class]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % Pas de opdracht \section aan
{\Large\scshape\raggedright} % Maak de \section-koppen groot (\Large),
                             % kleine kapitalen (\scshape) en links uitgelijnd (\raggedright)
  {}{0em}            % Kan worden gebruikt om een voorvoegsel aan alle secties te geven, zoals 'Sectie ...'
  {}                 % Kan worden gebruikt om code vóór de kop in te voegen
  [\titlerule]       % Voegt een horizontale lijn toe na de kop
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Dit genereert het volgende document:

![Figuur 1.png](/files/500c4ce9982db0e89200a4f6fcd66199aed6b721)

De `#1` en `#2` verwijzen naar het eerste en tweede argument of parameter die naar de opdracht worden doorgegeven. In de eerste regel van een `\newcommand`, verwijst de sectie tussen haakjes, bijvoorbeeld `[2]` verwijst naar het aantal parameters dat aan de functie wordt doorgegeven. De functie kan deze parameters vervolgens aanroepen met `#1`, `#2`, en zo verder, afhankelijk van hoeveel parameters de functie nodig had. Functies met meer parameters worden later in het artikel getoond.

We gaan verder door een naam- en contactsectie toe te voegen, en gaan daarnaast verder met de ervaring en andere secties.

### Naam- en contactinformatie

In een cv staat de naam doorgaans bovenaan, met contactinformatie om te gebruiken voor sollicitaties. Dit wordt bereikt door nieuwe functies aan ons klassebestand toe te voegen. De naam kan worden toegevoegd met een eenvoudige functie:

```latex
\newcommand{\name}[1]{%
  \centerline{\Huge{#1}}
}
```

Dit levert een gecentreerde naam in groot lettertype op, waar deze ook wordt gebruikt. Dit kan zo worden aangeroepen:

```latex
\name{John Smith}
```

Nu de contactinformatie. Voeg het volgende toe aan het klassebestand:

```latex
\newcommand\contact[5]{%
    \centerline{%
        \makebox[0pt][c]{%
            #1 {\large\textperiodcentered} #2 {\large\textperiodcentered} #3
            \ #4 \ \ #5%
        }%
    }%
}
```

Roep daarna de functie aan vanuit het document:

```latex
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
```

Dit wordt allemaal netjes weergegeven, met de naam en contactinformatie zoals hier:

![Figuur 2.png](/files/5b2a2a5316e5977ad48eb9617617a02fd7566689)

Dit geeft contactinformatie weer in een nette opmaak, met een scheidingsteken ertussen. Dit kan zo nodig worden aangepast voor langere adressen door een tweede functie toe te voegen:

```latex
\newcommand{\longcontact}[5]{%
    \noindent
    #1\hfill {\large\textperiodcentered}\hfill #2\hfill
    {\large\textperiodcentered}\hfill #3\\
    #4\hfill #5%
}
```

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

Dit ziet er een beetje vreemd uit met de korte informatie, maar als een adres bijzonder lang is, is dit flexibeler in gebruik. Het beste hiervan is dat het TeX-document nauwelijks wijzigingen vereist:

```latex
\longcontact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
```

Dit is het belangrijkste doel van het gebruik van klassebestanden. Ze maken minimale wijzigingen in de inhoud van het document mogelijk en regelen de presentatie (hoe de inhoud wordt weergegeven) extern.

### De ervaringssectie uitbreiden

Een cv moet meer bevatten dan alleen een opsomming van banen. Onder elk item moet een beschrijving worden toegevoegd van wat er in de banen is gedaan. 3 opsommingstekens per baan is een goede balans tussen detail en beschrijving. Dit kan eenvoudig worden aangepast door nodes toe te voegen of te verwijderen. Voeg het volgende toe aan het klassebestand:

```latex
\newcommand{\workitems}[3]{%
    \begin{itemize}
    \item #1
    \item #2
    \item #3
    \end{itemize}%
}
```

Voeg het volgende toe aan de `.tex` bestand:

```latex
\workitems
{Ontwikkeld nieuw product}
{Productiviteit met 20\% verhoogd}
{Kosten met \$10.000 verlaagd}
```

Nu ziet de ervaringssectie er al wat voller uit:

![Figuur 4.png](/files/e5b81ed0e9480f7fb82bbbd691a5b1cfab63d02d)

Het toevoegen van een vaardighedensectie maakt het cv compleet. Dit werd gedaan zonder een klassefunctie, omdat het de LaTeX-code niet veel korter maakte:

```latex
\section{Vaardigheden}

\begin{tabular}{l l l l}
C\# & T-SQL & Javascript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}
```

Dit resulteert in het volgende:

![Figuur 5.png](/files/6abbcd76ee7d5f00df1d024d42aafc1db0f7fb43)

### Conclusie

Dit tweedelige artikel zou je een heel basaal cv-sjabloon moeten hebben gegeven, klaar om uit te breiden en nieuwe secties toe te voegen.

Het volledige klassebestand is als volgt:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 custom CV class]
\LoadClass{article}
\RequirePackage{titlesec}

\titleformat{\section}
  {\Large\scshape\raggedright}
  {}{0em}
  {}
  [\titlerule]

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

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

\newcommand{\name}[1]{%
  \centerline{\Huge{#1}}%
}

\newcommand\contact[5]{%
    \centerline{%
        \makebox[0pt][c]{%
            #1 {\large\textperiodcentered} #2 {\large\textperiodcentered} #3
            \ #4 \ \ #5%
        }%
    }%
}

\newcommand{\longcontact}[5]{%
    \noindent
    #1\hfill {\large\textperiodcentered}\hfill #2\hfill
    {\large\textperiodcentered}\hfill #3\\
    #4\hfill #5%
}

\newcommand{\workitems}[3]{%
    \begin{itemize}
    \item #1
    \item #2
    \item #3
    \end{itemize}%
}
```

De `.tex` bestand is als volgt:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Opleiding}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Werk}
\datedsubsection{ABC Limited}{2008-Nu}
\workitems
{Ontwikkeld nieuw product}
{Productiviteit met 20\% verhoogd}
{Kosten met \$10.000 verlaagd}

\section{Vaardigheden}
\begin{tabular}{l l l l}
C\# & T-SQL & Javascript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}

\end{document}
```

Dit resulteert in het volgende document:

![Figuur 6.png](/files/c708553c0d3cbfe95df9f883a514e0023a3276bc)

Deze tutorial zou een uitstekend startpunt voor een cv moeten bieden, met ruimte voor uitbreiding.

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


---

# 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/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.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.
