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

# Hvordan skrive en LaTeX-klassefil og designe din egen CV (del 1)

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

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

Alle vil ha en CV som ser profesjonell ut, og det finnes ingen mangel på LaTeX-maler som kan gi deg en. Hvis du er som meg, vil du likevel ville eie CV-en din og gjøre den til din egen. Det betyr at du må kunne tilpasse utseendet og følelsen selv, noe som kan være notorisk vanskelig i LaTeX. I denne serien med blogginnlegg håper jeg å guide deg gjennom å lage din egen egendefinerte klassefil og vise deg at det kan være enkelt å formatere CV-en din akkurat slik du vil. Vi kommer til å fokusere på en CV-stil, men metodene vil være identiske for alle typer dokumenter.

### Hva er en klassefil?

Når du skriver `\documentclass{article}` i LaTeX-filen din, inkluderer du klassefilen `article.cls`. Dette definerer alle kommandoene som `\section` og `\title` som brukes til å strukturere dokumentet ditt. Det konfigurerer også hvordan disse kommandoene påvirker formatet og sideoppsettet på siden.

### Slik setter du opp din egen klassefil

Den peneste måten å tilpasse formatet på et dokument på er å ha all den informasjonen i en personlig klassefil. Dette holder strukturen i dokumentet ditt tydelig adskilt fra formateringen og gjør gjenbruk enkel. Det er enkelt å sette dette opp, så lag et dokument kalt cv.tex med følgende innhold:

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

Dette prøver å laste inn din egendefinerte klassefil `my_cv.cls`, som ikke finnes ennå. Opprett `my_cv.cls` i samme katalog som `cv.tex` og skriv følgende linje i den:

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

Hvis du kompilerer dokumentet ditt nå, bør du se overskriftene i standard article-stil.

Så hva har skjedd her? Klassefiler må inneholde mye formateringsinformasjon og intern konfigurasjon for at LaTeX skal fungere riktig, men vi vil ikke måtte skrive inn alt manuelt. I stedet kan vi basere vår nye klassefil på `article.cls`. Vi bruker `\LoadClass` inkludere `article.cls` og laster inn alle kommandoene og stilene som er definert der. Merk at vi ikke bruker den vanlige `\documentclass` kommandoen for å inkludere `article.cls` fordi `\documentclass` skal bare noen gang kalles én gang helt i begynnelsen av LaTeX-dokumentet ditt.

### Gi LaTeX beskjed om klassen din

Alle klassefiler bør starte med to linjer som ligner de følgende, som du bør legge til øverst i `my_cv.cls` nå:

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

Den `\NeedsTeXFormat` kommandoene forteller kompilatoren hvilken versjon av LaTeX pakken er laget for. Den nåværende versjonen av LaTeX er LaTeX2e, og nesten alle distribusjoner bruker denne.

Den `\ProvidesClass` kommandoen gir kompilatoren noe informasjon om pakken din. Det første argumentet bør samsvare med filnavnet til klassefilen din og forteller LaTeX hva pakken din heter. Det andre argumentet er valgfritt og gir en beskrivelse av klassen din, som vil vises i loggen og andre steder. Beskrivelsen må begynne med en dato i nøyaktig formatet ovenfor, og det bør være datoen da pakken sist ble endret. Dette kan brukes når du inkluderer klassen for å sjekke at du har en tilstrekkelig ny versjon av den. For eksempel, hvis du inkluderer den via `\documentclass{my_cv}[2012/01/01]` med en dato som er nyere enn datoen i klassebeskrivelsen, vil det vises en advarsel om at klassen er utdatert.

### Endre seksjonsoverskriftene

De vanlige seksjonsoverskriftene i article passer egentlig ikke til en CV, så vi vil gjerne erstatte dem med noe penere. For å gjøre dette kan vi redefinere `\section` kommandoen slik at den skriver ut en egendefinert overskrift.

Heldigvis finnes det allerede en utmerket pakke som heter `titlesec` som gir en enkel måte å tilpasse overskriftsstilene våre på. Ta dette med i klassefilen din med:

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

Merk at vi bør bruke `\RequirePackage` i stedet for den vanlige `\usepackage` kommandoen fordi vi er i en klassefil.  `\RequirePackage` kommandoen sørger for at hver pakke bare lastes inn én gang, selv om den kalles flere ganger fra ulike stil- og klassefiler.

Den `titlesec` pakken gir kommandoen `\titleformat` som lar oss tilpasse seksjonsoverskriftene våre. Legg følgende til på slutten av `my_cv.cls` for å tilpasse formatet på overskriften:

```latex
\titleformat{\section}         % Tilpass \section-kommandoen
  {\Large\scshape\raggedright} % Gjør \section-overskriftene store (\Large),
                               % små versaler (\scshape) og venstrejusterte (\raggedright)
  {}{0em}                      % Kan brukes til å gi et prefiks til alle seksjoner, som 'Seksjon ...'
  {}                           % Kan brukes til å sette inn kode før overskriften
  [\titlerule]                 % Setter inn en horisontal linje etter overskriften
```

Hvis vi kompilerer `cv.tex` nå vil vi se at vi har noen hovedoverskrifter som passer bedre for en CV:

![Screenshot1.png](/files/60f7ca8ae45ee560e76085edb53d82196cb4a667)

Vi kan også tilpasse \subsection-overskriftene:

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

Underseksjonene er nå i samme stil:

![Screenshot2.png](/files/8dfc7f438c8472377078bd30fe7443b90c81f4ff)

Du bør prøve noen av formateringsalternativene som er tilgjengelige for å se hva du liker:

* `\bfseries`, `\itshape`: gjør overskriften fet eller kursiv;
* `\scshape`: små versaler;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: angi skriftstørrelsen;
* `\rmfamily`, `\sffamily`, `\ttfamily`: sett skrifttypen til henholdsvis serif, sans serif eller skrivemaskinfont.

### Legg til datoer i seksjonsoverskriftene

Vi kan definere noen nye kommandoer som lar oss inkludere datoer i seksjonsoverskriftene våre. Ta med følgende i klassefilen din:

```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 tar to argumenter: seksjonsnavnet som før, og en dato som vil bli satt på høyre side av siden.  `\hfill` kommandoen forteller LaTeX å fylle så mye plass som mulig og skyver dermed det andre argumentet (`#2`) til høyre på siden. Endre `cv.tex` for å bruke disse kommandoene:

```latex
\documentclass{my_cv}

\begin{document}

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

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

\end{document} ​
```

CV-en vår inneholder nå datoer:

![Screenshot3.png](/files/dbf5dba53d580e3fe51e1bc6adf08ac492cdd23d)

### Konklusjoner

Det var alt for del én av denne veiledningen, men forhåpentligvis har jeg dekket nok til at du kan gå videre og begynne å lage nyttige klassefiler. Det har ikke krevd mange kommandoer å lage noe som allerede ser ut som en rimelig CV-mal, og vi har bare så vidt skrapt i overflaten av alt det andre vi kunne tilpasse. I de neste delene av denne veiledningen skal jeg snakke om å sende alternativer til klassen din for å konfigurere den, lage en fin tittel og hvordan du setter noen generelle oppsettsalternativer.

Takk for at du leste!

Merk at jeg selv er relativt ny når det gjelder å lage klassefiler, så hvis noen kan påpeke bedre måter å gjøre tingene jeg har nevnt her på, må dere gjerne si fra.

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