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

# Hur man skriver en LaTeX-klassfil och designar sitt eget CV (del 1)

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

**Författare: James Allen (mars 2011)**

Alla vill ha ett CV som ser professionellt ut och det finns ingen brist på LaTeX-mallar som kan ge dig ett sådant. Men om du är som jag vill du äga ditt CV och göra det till ditt eget. Det betyder att du själv måste kunna anpassa utseendet och känslan, vilket kan vara ökändt svårt i LaTeX. I den här serien av blogginlägg hoppas jag kunna guida dig genom att skapa din egen anpassade klassfil och visa att det kan vara enkelt att formatera ditt CV exakt som du vill. Vi fokuserar på en CV-stil, men metoderna kommer att vara identiska för alla typer av dokument.

### Vad är en klassfil?

När du skriver `\documentclass{article}` i din LaTeX-fil inkluderar du klassfilen `article.cls`. Detta definierar alla kommandon som `\section` och `\title` som används för att strukturera ditt dokument. Det konfigurerar också hur dessa kommandon påverkar sidans format och layout.

### Att sätta upp din egen klassfil

Det smidigaste sättet att anpassa formatet på ett dokument är att ha all den informationen i en personlig klassfil. Det håller dokumentets struktur tydligt åtskild från formateringen och möjliggör enkel återanvändning. Det är lätt att sätta upp detta, så skapa ett dokument som heter cv.tex med följande innehåll:

```latex
\documentclass{my_cv}
\begin{document}
\section{Utbildning}
\subsection{Universitetet Ingenstans}
\section{Arbete}
\subsection{ABC Limited.}
\end{document}
```

Detta försöker läsa in din anpassade klassfil `my_cv.cls`, som ännu inte finns. Skapa `my_cv.cls` i samma katalog som `cv.tex` och skriv följande rad i den:

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

Om du kompilerar ditt dokument nu bör du se rubrikerna i standardstilen för article.

Så vad har hänt här? Klassfiler måste innehålla mycket formateringsinformation och intern uppsättning för att LaTeX ska fungera korrekt, men vi vill inte behöva skriva in allt manuellt. I stället kan vi basera vår nya klassfil på `article.cls`. Vi använder `\LoadClass` innehålla `article.cls` och laddar alla kommandon och stilar som definieras där. Observera att vi inte använder det vanliga `\documentclass` kommandot för att inkludera `article.cls` eftersom `\documentclass` bör bara anropas en gång, allra först i ditt LaTeX-dokument.

### Att tala om för LaTeX om din klass

Alla klassfiler bör börja med två rader som liknar följande, vilka du bör lägga till överst i `my_cv.cls` nu:

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

Den `\NeedsTeXFormat` kommandot berättar för kompilatorn vilken version av LaTeX paketet är avsett för. Den nuvarande versionen av LaTeX är LaTeX2e och nästan alla distributioner använder detta.

Den `\ProvidesClass` kommandot ger kompilatorn viss information om ditt paket. Det första argumentet bör matcha filnamnet på din klassfil och berättar för LaTeX vad ditt paket heter. Det andra argumentet är valfritt och ger en beskrivning av din klass som kommer att visas i loggen och på andra ställen. Beskrivningen måste börja med ett datum i exakt formatet ovan och det bör vara datumet då paketet senast ändrades. Detta kan användas när klassen inkluderas för att kontrollera att du har en tillräckligt ny version av den. Om du till exempel inkluderar den via `\documentclass{my_cv}[2012/01/01]` med ett datum som är senare än datumet i klassbeskrivningen kommer en varning att visas om att klassen är föråldrad.

### Att ändra sektionsrubrikerna

De vanliga sektionsrubrikerna i article passar egentligen inte särskilt bra för ett CV, så vi vill ersätta dem med något snyggare. För att göra detta kan vi omdefiniera `\section` kommandot så att det skriver ut en anpassad rubrik.

Lyckligtvis finns det redan ett utmärkt paket som heter `titlesec` som ger ett enkelt sätt att anpassa våra rubrikstilar. Inkludera detta i din klassfil med:

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

Observera att vi bör använda `\RequirePackage` i stället för det vanliga `\usepackage` kommandot eftersom vi befinner oss i en klassfil.  `\RequirePackage` kommandot ser till att varje paket bara laddas en gång, även om det anropas flera gånger från olika stil- och klassfiler.

Den `titlesec` paketet tillhandahåller kommandot `\titleformat` som låter oss anpassa våra sektionsrubriker. Lägg till följande i slutet av `my_cv.cls` för att anpassa rubrikens format:

```latex
\titleformat{\section}         % Anpassa kommandot \section
  {\Large\scshape\raggedright} % Gör \section-rubrikerna stora (\Large),
                               % små kapitäler (\scshape) och vänsterställda (\raggedright)
  {}{0em}                      % Kan användas för att ge ett prefix till alla sektioner, som 'Sektion ...'
  {}                           % Kan användas för att infoga kod före rubriken
  [\titlerule]                 % Infogar en horisontell linje efter rubriken
```

Om vi kompilerar `cv.tex` nu ser vi att vi har några huvudrubriker som passar bättre för ett CV:

![Screenshot1.png](/files/c041a42723d46ae8734b3702ac7b4efe69232b28)

Vi kan också anpassa \subsection-rubrikerna:

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

Underavsnitten har nu samma stil:

![Screenshot2.png](/files/827bca28705991270005d8e1cb44554205aa81be)

Du bör prova några av de formateringsalternativ som finns för att se vad du gillar:

* `\bfseries`, `\itshape`: gör rubriken fet eller kursiv;
* `\scshape`: små kapitäler;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: ställ in teckenstorleken;
* `\rmfamily`, `\sffamily`, `\ttfamily`: ställ in typsnittet till serif, sans serif eller skrivmaskinsstil respektive.

### Att lägga till datum i sektionsrubriker

Vi kan definiera några nya kommandon som låter oss inkludera datum i våra sektionsrubriker. Lägg till följande i din klassfil:

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

Detta definierar två nya kommandon `\datedsection` och `\datedsubsection` som tar två argument: sektionsnamnet som tidigare, och ett datum som kommer att sättas ut på sidans högra sida.  `\hfill` kommandot säger åt LaTeX att fylla så mycket utrymme som möjligt och skjuter därför det andra argumentet (`#2`) till höger på sidan. Ändra `cv.tex` så att dessa kommandon används:

```latex
\documentclass{my_cv}

\begin{document}

\section{Utbildning}
\datedsubsection{Universitetet Ingenstans}{2004--2008}
Jag gick på Universitetet Ingenstans från 2004 till 2008.

\section{Arbete}
\datedsubsection{ABC Limited.}{2008--Now}
Jag har arbetat på ABC Limited sedan 2008.

\end{document} ​
```

Nu innehåller vårt CV datum:

![Screenshot3.png](/files/2c8e8dd167f5f8c75de6c68c03e7a2ef3251cf1d)

### Slutsatser

Det var allt för första delen av den här guiden, men förhoppningsvis har jag täckt tillräckligt för att du ska kunna gå vidare och börja skapa användbara klassfiler. Det har inte behövts många kommandon för att skapa något som redan ser ut som en någorlunda bra CV-mall, och vi har bara skrapat på ytan av allt annat vi skulle kunna anpassa. I de nästa delarna av den här guiden kommer jag att prata om hur man skickar alternativ till din klass för att konfigurera den, hur man skapar en snygg titel och hur man ställer in några allmänna layoutalternativ.

Tack för att du läste!

Observera att jag själv är relativt ny på att skapa klassfiler, så om någon kan påpeka bättre sätt att göra de saker jag har nämnt här, låt mig gärna veta.

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