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

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

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

**Autor: Cody Herring (czerwiec 2013)**

To jest kontynuacja [Jak napisać plik klasy LaTeX i zaprojektować własne CV (Część 1)](/latex/pl/wiecej-tematow/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), omawiając więcej opcji tworzenia CV i wykorzystując do tego pliki klas.

W ostatnim wpisie stworzyliśmy 2 pliki: `cv.tex` i `my_cv.cls`. Plik zawartości, `cv.tex`, zawierał następujące:

```latex
\documentclass{my_cv}
\begin{document}
\section{Education}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Work}
\datedsubsection{ABC Limited}{2008-Now}
\end{document}
```

`my_cv.cls` zawierał pewne domyślne ustawienia formatowania, a także kilka poleceń do użycia:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 niestandardowa klasa CV]
\LoadClass{article}
\RequirePackage{titlesec}
\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ć, aby dodać prefiks do wszystkich sekcji, np. 'Sekcja ...'
  {}                 % Można użyć, aby wstawić kod przed nagłówkiem
  [\titlerule]       % Wstawia poziomą linię po nagłówku
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

To generuje następujący dokument:

![Rysunek 1.png](/files/e62591235396088764c5e29be52b3b6328db640b)

Ta `#1` i `#2` odnoszą się do pierwszego i drugiego argumentu lub parametru przekazywanego do polecenia. W pierwszym wierszu a `\newcommand`, sekcja w nawiasach, np. `[2]` odnosi się do liczby parametrów przekazywanych do funkcji. Funkcja może następnie odwołać się do tych parametrów za pomocą `#1`, `#2`, i tak dalej, w zależności od tego, ile parametrów wymagała funkcja. Funkcje z większą liczbą parametrów zostaną pokazane później w artykule.

Kontynuujemy, dodając sekcję imienia i kontaktu, a także rozwijając sekcję doświadczenia i inne sekcje.

### Imię i dane kontaktowe

W CV imię jest zwykle na górze, wraz z danymi kontaktowymi potrzebnymi do aplikowania o pracę. Osiągniemy to, dodając nowe funkcje do naszego pliku klasy. Imię można dodać za pomocą prostej funkcji:

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

To tworzy wyśrodkowane, duże imię wszędzie tam, gdzie jest użyte. Można to wywołać tak:

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

Teraz dane kontaktowe. Dodaj następujące do pliku klasy:

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

Następnie wywołaj funkcję z dokumentu:

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

Wszystko to wyświetla się ładnie, z imieniem i danymi kontaktowymi tak:

![Rysunek 2.png](/files/eb2201ec158f1d56273a5515671d62ce50195c69)

To wyświetla dane kontaktowe w ładnym formacie, z rozdzieleniem kropką pośrodku. Można to dostosować do dłuższych adresów, jeśli trzeba, dodając drugą funkcję:

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

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

To wygląda trochę dziwnie przy krótkich informacjach, ale jeśli adres jest szczególnie długi, jest to bardziej elastyczne rozwiązanie. Najlepsze jest to, że dokument TeX wymaga minimalnych zmian:

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

To jest główny sens używania plików klas. Umożliwiają minimalne zmiany w treści dokumentu i zewnętrzne kontrolowanie prezentacji (sposobu wyświetlania treści).

### Rozszerzanie sekcji Doświadczenie

CV powinno zawierać coś więcej niż tylko listę stanowisk. Pod każdym wpisem należy dodać krótki opis tego, co było wykonywane w pracy. Trzy punkty wypunktowania na każde stanowisko to dobry balans między szczegółowością a opisem. Można to łatwo dostosować, dodając lub usuwając elementy. Dodaj następujące do pliku klasy:

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

Dodaj następujące do `.tex` pliku:

```latex
\workitems
{Opracowano nowy produkt}
{Zwiększono produktywność o 20\%}
{Obniżono koszty o \$10,000}
```

Teraz sekcja doświadczenia wygląda na trochę bardziej pełną:

![Rysunek 4.png](/files/16d605114e333762ad47919d4192f8202c1a1f60)

Dodanie sekcji umiejętności dopełnia CV. Zrobiono to bez funkcji klasy, ponieważ niewiele skracało to kod LaTeX:

```latex
\section{Umiejętności}

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

To daje następujący wynik:

![Rysunek 5.png](/files/4d51a27be0a2003751f69f4e0c3c9a4f9b9a4e3e)

### Zakończenie

Ten dwuczęściowy artykuł powinien pozostawić Ci bardzo podstawowy szablon CV, gotowy do rozbudowy i dodawania nowych sekcji.

Cały plik klasy wygląda następująco:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 niestandardowa klasa CV]
\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}%
}
```

Ta `.tex` plik wygląda następująco:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Education}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Work}
\datedsubsection{ABC Limited}{2008-Now}
\workitems
{Opracowano nowy produkt}
{Zwiększono produktywność o 20\%}
{Obniżono koszty o \$10,000}

\section{Umiejętności}
\begin{tabular}{l l l l}
C\# & T-SQL & JavaScript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}

\end{document}
```

To daje następujący dokument:

![Rysunek 6.png](/files/c80afc070405bac4dcf0421f1ab989b648b7a139)

Ten poradnik powinien stanowić świetny punkt wyjścia do stworzenia CV, z możliwością rozbudowy.

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