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

# Sådan skriver du en LaTeX-klassefil og designer dit eget CV (del 1)

Del 1 | [Del 2](/latex/da/flere-emner/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Forfatter: James Allen (marts 2011)**

Alle vil have et CV, der ser professionelt ud, og der er ingen mangel på LaTeX-skabeloner, der kan give dig et. Men hvis du er ligesom mig, vil du gerne eje dit CV og gøre det personligt. Det betyder, at du selv skal kunne tilpasse udseendet og fornemmelsen, hvilket kan være notorisk svært i LaTeX. I denne serie af blogindlæg håber jeg at kunne guide dig gennem at oprette din egen brugerdefinerede klassefil og vise dig, at det kan være let at formatere dit CV præcis, som du vil have det. Vi fokuserer på en CV-stil, men metoderne vil være de samme for alle slags dokumenter.

### Hvad er en klassefil?

Når du skriver `\documentclass{article}` i din LaTeX-fil, inkluderer du klassefilen `article.cls`. Dette definerer alle kommandoerne som `\section` og `\title` som bruges til at strukturere dit dokument. Det konfigurerer også, hvordan disse kommandoer påvirker sidens format og layout.

### Opsætning af din egen klassefil

Den pæneste måde at tilpasse formatet af et dokument på er at gemme al den information i en personlig klassefil. Det holder strukturen i dit dokument pænt adskilt fra formateringen og gør genbrug let. Det er nemt at sætte op, så opret et dokument kaldet cv.tex med følgende indhold:

```latex
\documentclass{my_cv}
\begin{document}
\section{Education}
\subsection{University of Nowhere}
\section{Work}
\subsection{ABC Limited.}
\end{document}
```

Dette forsøger at indlæse din brugerdefinerede klassefil `my_cv.cls`, som endnu ikke findes. Opret `my_cv.cls` i samme mappe som `cv.tex` og skriv følgende linje i den:

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

Hvis du kompilerer dit dokument nu, bør du se overskrifterne i standard article-stilen.

Så hvad er der sket her? Klassefiler skal indeholde en masse formateringsinformation og intern opsætning for at få LaTeX til at virke korrekt, men vi vil ikke selv skulle indtaste det hele manuelt. I stedet kan vi basere vores nye klassefil på `article.cls`. Vi bruger `\LoadClass` at inkludere `article.cls` og indlæser alle de kommandoer og stilarter, der er defineret i den. Bemærk, at vi ikke bruger den sædvanlige `\documentclass` kommando til at inkludere `article.cls` fordi `\documentclass` bør kun nogensinde kaldes én gang helt i begyndelsen af dit LaTeX-dokument.

### Fortæl LaTeX om din klasse

Alle klassefiler bør starte med to linjer, der ligner følgende, som du bør tilføje øverst i `my_cv.cls` nu:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 My custom CV class]
```

Den `\NeedsTeXFormat` kommandoerne fortæller compileren, hvilken version af LaTeX pakken er til. Den nuværende version af LaTeX er LaTeX2e, og næsten alle distributioner bruger denne.

Den `\ProvidesClass` kommandoen giver compileren nogle oplysninger om din pakke. Det første argument skal matche filnavnet på din klassefil og fortæller LaTeX, hvad din pakke hedder. Det andet argument er valgfrit og giver en beskrivelse af din klasse, som vil vises i loggen og andre steder. Beskrivelsen skal begynde med en dato i præcis det ovenstående format, og det bør være datoen, hvor pakken sidst blev ændret. Dette kan bruges ved inkludering af klassen til at kontrollere, at du har en nyere nok version af den. Hvis du f.eks. inkluderer den via `\documentclass{my_cv}[2012/01/01]` med en dato, der er nyere end datoen i klassens beskrivelse, vil der blive vist en advarsel om, at klassen er forældet.

### Ændring af sektionsoverskrifterne

De standardmæssige sektionsoverskrifter i article passer egentlig ikke til et CV, så vi vil gerne erstatte dem med noget pænere. For at gøre dette kan vi redefinere `\section` kommandoen til at udskrive en brugerdefineret overskrift.

Heldigvis findes der allerede en fremragende pakke kaldet `titlesec` som giver en nem måde at tilpasse vores overskriftsstile på. Inkluder den i din klassefil med:

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

Bemærk, at vi bør bruge `\RequirePackage` i stedet for den sædvanlige `\usepackage` kommando, fordi vi er i en klassefil.  `\RequirePackage` kommandoen sørger for, at hver pakke kun indlæses én gang, selv hvis den kaldes flere gange fra forskellige stil- og klassefiler.

Den `titlesec` pakken leverer kommandoen `\titleformat` som gør det muligt for os at tilpasse vores sektionsoverskrifter. Tilføj følgende i slutningen af `my_cv.cls` for at tilpasse overskriftens format:

```latex
\titleformat{\section}         % Tilpas kommandoen \section
  {\Large\scshape\raggedright} % Gør \section-overskrifterne store (\Large),
                               % med små versaler (\scshape) og venstrejusterede (\raggedright)
  {}{0em}                      % Kan bruges til at give et præfiks til alle sektioner, som 'Sektion ...'
  {}                           % Kan bruges til at indsætte kode før overskriften
  [\titlerule]                 % Indsætter en vandret linje efter overskriften
```

Hvis vi kompilerer `cv.tex` nu, vil vi se, at vi har nogle hovedoverskrifter, som passer bedre til et CV:

![Screenshot1.png](/files/4f9efb6a4478de21a9f1af32f1387790ca5cf417)

Vi kan også tilpasse \subsection-overskrifterne:

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

Undersektionerne er nu i samme stil:

![Screenshot2.png](/files/1868a0a79509809b2759ae657a5deaa7a59a5a52)

Du bør prøve nogle af de tilgængelige formateringsmuligheder for at se, hvad du kan lide:

* `\bfseries`, `\itshape`: gør overskriften fed eller kursiv;
* `\scshape`: små versaler;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: angiv skriftstørrelsen;
* `\rmfamily`, `\sffamily`, `\ttfamily`: sæt skrifttypen til henholdsvis serif, sans serif eller skrivemaskineskrift.

### Tilføjelse af datoer til sektionsoverskrifter

Vi kan definere nogle nye kommandoer, som lader os inkludere datoer i vores sektionsoverskrifter. Inkluder følgende i din klassefil:

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

Dette definerer to nye kommandoer `\datedsection` og `\datedsubsection` som tager to argumenter: sektionsnavnet som før og en dato, som vil blive sat på højre side af siden.  `\hfill` kommandoen fortæller LaTeX at udfylde så meget plads som muligt og skubber derfor det andet argument (`#2`) til højre side af siden. Ændr `cv.tex` for at bruge disse kommandoer:

```latex
\documentclass{my_cv}

\begin{document}

\section{Education}
\datedsubsection{University of Nowhere}{2004--2008}
Jeg gik på University of Nowhere fra 2004 til 2008.

\section{Work}
\datedsubsection{ABC Limited.}{2008--Now}
Jeg har arbejdet hos ABC Limited siden 2008.

\end{document} ​
```

Vores CV indeholder nu datoer:

![Screenshot3.png](/files/99cf4b87650bb607ef89cca54292e54f60308269)

### Konklusioner

Det var alt for del et af denne guide, men forhåbentlig har jeg dækket nok til, at du kan gå videre og begynde at lave nyttige klassefiler. Det har ikke krævet mange kommandoer at skabe noget, der allerede ligner en rimelig CV-skabelon, og vi har kun kradset i overfladen af, hvad vi ellers kunne tilpasse. I de næste dele af denne guide vil jeg tale om at sende muligheder til din klasse for at konfigurere den, at skabe en pæn titel og om hvordan man sætter nogle generelle layoutindstillinger.

Tak fordi du læste med!

Bemærk, at jeg selv er forholdsvis ny til at oprette klassefiler, så hvis nogen kan pege på bedre måder at gøre de ting, jeg har nævnt her, på, så lad mig det endelig vide.

Del 1 | [Del 2](/latex/da/flere-emner/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/da/flere-emner/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.
