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

# Jak napisać plik klasy LaTeX i zaprojektować własne CV (Część 1)

Część 1 | [Część 2](/latex/pl/wiecej-tematow/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Autor: James Allen (marzec 2011)**

Każdy chce mieć CV wyglądające profesjonalnie i nie brakuje szablonów LaTeX, które mogą to zapewnić. Jeśli jednak jesteś podobny do mnie, będziesz chciał posiadać swoje CV i uczynić je własnym. Oznacza to, że musisz samodzielnie umieć dostosować wygląd i styl, co w LaTeX może być notorycznie trudne. W tej serii wpisów na blogu mam nadzieję przeprowadzić cię przez tworzenie własnego pliku klasy i pokazać, że formatowanie CV dokładnie tak, jak chcesz, może być łatwe. Skupimy się na stylu CV, ale metody będą identyczne dla każdego rodzaju dokumentu.

### Czym jest plik klasy?

Gdy wpisujesz `\documentclass{article}` w swoim pliku LaTeX, dołączasz plik klasy `article.cls`. Definiuje to wszystkie polecenia, takie jak `\section` i `\title` które służą do strukturyzowania dokumentu. Konfiguruje też, w jaki sposób te polecenia wpływają na format i układ strony.

### Tworzenie własnego pliku klasy

Najwygodniejszym sposobem dostosowania formatu dokumentu jest przechowywanie wszystkich tych informacji w osobnym pliku klasy. Dzięki temu struktura dokumentu pozostaje wyraźnie oddzielona od formatowania, a ponowne użycie jest łatwe. Łatwo to skonfigurować, więc utwórz dokument o nazwie cv.tex z następującą zawartością:

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

To próba wczytania twojego własnego pliku klasy `my_cv.cls`, którego jeszcze nie ma. Utwórz `my_cv.cls` w tym samym katalogu co `cv.tex` i wpisz w nim następującą linię:

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

Jeśli teraz skompilujesz dokument, powinieneś zobaczyć nagłówki w domyślnym stylu article.

A więc co się tutaj stało? Pliki klasy muszą zawierać wiele informacji o formatowaniu i wewnętrznej konfiguracji, aby LaTeX działał poprawnie, ale nie chcemy wprowadzać tego wszystkiego ręcznie. Zamiast tego możemy oprzeć nasz nowy plik klasy na `article.cls`. Używamy `\LoadClass` zawierać `article.cls` i wczytujemy wszystkie polecenia oraz style w nim zdefiniowane. Zauważ, że nie używamy zwykłego `\documentclass` polecenia do dołączania `article.cls` ponieważ `\documentclass` powinno być wywołane tylko raz, na samym początku dokumentu LaTeX.

### Informowanie LaTeX-a o twojej klasie

Wszystkie pliki klasy powinny zaczynać się od dwóch linii podobnych do poniższych, które należy dodać na początku `my_cv.cls` teraz:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 Moja własna klasa CV]
```

Ta `\NeedsTeXFormat` polecenie informuje kompilator, dla której wersji LaTeX-a przeznaczony jest pakiet. Obecna wersja LaTeX-a to LaTeX2e i prawie wszystkie dystrybucje z niej korzystają.

Ta `\ProvidesClass` polecenie daje kompilatorowi pewne informacje o twoim pakiecie. Pierwszy argument powinien odpowiadać nazwie pliku twojego pliku klasy i informuje LaTeX, jak nazywa się twój pakiet. Drugi argument jest opcjonalny i zawiera opis twojej klasy, który pojawi się w logu i innych miejscach. Opis musi zaczynać się od daty dokładnie w formacie podanym powyżej i powinna to być data ostatniej modyfikacji pakietu. Można to wykorzystać przy dołączaniu klasy, aby sprawdzić, czy masz jej wystarczająco aktualną wersję. Na przykład, jeśli dołączysz ją przez `\documentclass{my_cv}[2012/01/01]` z datą nowszą niż data w opisie klasy zostanie wyświetlone ostrzeżenie informujące, że klasa jest nieaktualna.

### Modyfikowanie nagłówków sekcji

Standardowe nagłówki sekcji w stylu article nie bardzo pasują do CV, więc chcielibyśmy zastąpić je czymś bardziej eleganckim. W tym celu możemy przedefiniować `\section` polecenie tak, aby wypisywało własny nagłówek.

Na szczęście istnieje już doskonały pakiet o nazwie `titlesec` który zapewnia łatwy sposób dostosowywania stylów naszych nagłówków. Dodaj go do pliku klasy za pomocą:

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

Zauważ, że powinniśmy używać `\RequirePackage` zamiast zwykłego `\usepackage` polecenia, ponieważ znajdujemy się w pliku klasy. To `\RequirePackage` polecenie zapewnia, że każdy pakiet jest wczytywany tylko raz, nawet jeśli jest wywoływany wielokrotnie z różnych plików stylu i klasy.

Ta `titlesec` pakiet udostępnia polecenie `\titleformat` które pozwala nam dostosować nagłówki sekcji. Dodaj następujący fragment na końcu `my_cv.cls` aby dostosować format nagłówka:

```latex
\titleformat{\section}         % Dostosuj polecenie \section
  {\Large\scshape\raggedright} % Uczyń nagłówki \section duże (\Large),
                               % małe kapitaliki (\scshape) i wyrównane do lewej (\raggedright)
  {}{0em}                      % Można użyć do dodania przedrostka do wszystkich sekcji, np. 'Sekcja ...'
  {}                           % Można użyć do wstawienia kodu przed nagłówkiem
  [\titlerule]                 % Wstawia poziomą linię po nagłówku
```

Jeśli skompilujemy `cv.tex` teraz, zobaczymy, że mamy główne nagłówki bardziej odpowiednie dla CV:

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

Możemy również dostosować nagłówki \subsection:

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

Podsekcje są teraz w tym samym stylu:

![Screenshot2.png](/files/c8ca8e12a11f551b0c69a955d1980e4444d273af)

Powinieneś wypróbować kilka dostępnych opcji formatowania, aby sprawdzić, co ci odpowiada:

* `\bfseries`, `\itshape`: pogrubienie lub kursywa nagłówka;
* `\scshape`: wersaliki;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: ustaw rozmiar czcionki;
* `\rmfamily`, `\sffamily`, `\ttfamily`: ustaw odpowiednio krój czcionki na szeryfowy, bezszeryfowy lub maszynowy.

### Dodawanie dat do nagłówków sekcji

Możemy zdefiniować kilka nowych poleceń, które pozwolą nam umieszczać daty w nagłówkach sekcji. Dodaj następujący fragment do swojego pliku klasy:

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

To definiuje dwa nowe polecenia `\datedsection` i `\datedsubsection` które przyjmują dwa argumenty: nazwę sekcji jak wcześniej oraz datę, która zostanie ustawiona po prawej stronie strony. Polecenie `\hfill` nakazuje LaTeX-owi wypełnić jak najwięcej miejsca, a więc przesuwa drugi argument (`#2`) na prawą stronę strony. Zmień `cv.tex` tak, aby użyć tych poleceń:

```latex
\documentclass{my_cv}

\begin{document}

\section{Education}
\datedsubsection{University of Nowhere}{2004--2008}
Uczęszczałem do Uniwersytetu Nigdzie w latach 2004–2008.

\section{Work}
\datedsubsection{ABC Limited.}{2008--Now}
Pracuję w ABC Limited od 2008 roku.

\end{document} ​
```

Nasze CV zawiera teraz daty:

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

### Wnioski

To wszystko w pierwszej części tego przewodnika, ale mam nadzieję, że omówiłem wystarczająco dużo, abyś mógł dalej samodzielnie tworzyć użyteczne pliki klasy. Nie trzeba było wielu poleceń, by stworzyć coś, co już wygląda jak sensowny szablon CV, i dotknęliśmy tylko powierzchni tego, co jeszcze można by dostosować. W następnych kilku częściach tego przewodnika opowiem o przekazywaniu opcji do twojej klasy w celu jej konfiguracji, tworzeniu ładnego tytułu oraz o tym, jak ustawić kilka ogólnych opcji układu.

Dziękuję za lekturę!

Zauważ, że sam jestem stosunkowo nowy w tworzeniu plików klasy, więc jeśli ktoś może wskazać lepsze sposoby robienia rzeczy, o których wspomniałem tutaj, proszę daj mi znać.

Część 1 | [Część 2](/latex/pl/wiecej-tematow/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/pl/wiecej-tematow/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.
