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

# Jak napsat třídu LaTeXu a navrhnout si vlastní životopis (Část 2)

[Část 1](/latex/cs/dalsi-temata/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Část 2

**Autor: Cody Herring (červen 2013)**

Toto je pokračování [Jak napsat soubor třídy LaTeX a navrhnout vlastní životopis (část 1)](/latex/cs/dalsi-temata/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), přičemž pro vytváření životopisu procházíme další možnosti a používáme k tomu soubory tříd.

V minulém příspěvku jsme vytvořili 2 soubory: `cv.tex` a `my_cv.cls`. Soubor s obsahem, `cv.tex`, obsahoval následující:

```latex
\documentclass{my_cv}
\begin{document}
\section{Vzdělání}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Práce}
\datedsubsection{ABC Limited}{2008-Now}
\end{document}
```

`my_cv.cls` obsahoval některé výchozí formátovací volby i několik příkazů k použití:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 vlastní třída životopisu]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % Upraví příkaz \section
{\Large\scshape\raggedright} % Nastaví nadpisy sekcí na velké (\Large),
                             % kapitálky (\scshape) a zarovnání doleva (\raggedright)
  {}                 % Lze použít k přidání předpony ke všem sekcím, například 'Sekce ...'
  {}                 % Lze použít k vložení kódu před nadpis
  [\titlerule]       % Vloží vodorovnou čáru za nadpis
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Toto vygeneruje následující dokument:

![Obrázek 1.png](/files/243c963481812c4bd41266187c117f22634fcf5b)

Ta `#1` a `#2` odkazují na první a druhý argument neboli parametr, které jsou předávány příkazu. V prvním řádku `\newcommand`, sekce v závorkách např. `[2]` označuje počet parametrů předávaných funkci. Funkce pak může tyto parametry volat pomocí `#1`, `#2`, a tak dále, podle toho, kolik parametrů funkce vyžadovala. Funkce s více parametry budou v článku ukázány později.

Budeme pokračovat přidáním sekce jména a kontaktu a také budeme pokračovat se zkušenostmi a dalšími sekcemi.

### Jméno a kontaktní údaje

V životopisu je jméno obvykle nahoře, s kontaktními údaji pro uchazeče o práci. Toho dosáhneme přidáním nových funkcí do našeho souboru třídy. Jméno lze přidat pomocí jednoduché funkce:

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

Toto vytvoří centrované jméno velkým písmem všude, kde je použito. Může se volat takto:

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

Nyní ke kontaktním údajům. Do souboru třídy přidejte následující:

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

Poté zavolejte funkci z dokumentu:

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

Všechno se to zobrazuje pěkně, se jménem a kontaktními údaji takto:

![Obrázek 2.png](/files/fa9534e9456de048fd637d021269dc6d8ee2acfc)

Toto zobrazuje kontaktní údaje pěkně formátované s odrážkou mezi nimi. V případě potřeby lze to upravit pro delší adresy přidáním druhé funkce:

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

![Screenshot3.png](/files/8d813e821a92461a85bf4b7f533ed8bb35c18d84)

S krátkými údaji to vypadá trochu zvláštně, ale pokud je adresa obzvlášť dlouhá, je flexibilnější to použít. Nejlepší na tom je, že dokument TeX vyžaduje minimální změny:

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

To je hlavní pointa používání souborů tříd. Umožňují minimální změny v obsahu dokumentu a externě řídí prezentaci (jak je obsah zobrazen).

### Rozšíření sekce Zkušenosti

Životopis by měl obsahovat víc než jen výčet pracovních míst. Pod každou položku by měl být přidán nějaký popis toho, co bylo v dané práci děláno. Tři odrážky na jednu práci jsou dobrým kompromisem mezi detailem a popisem. To lze snadno upravit přidáním nebo odebráním uzlů. Do souboru třídy přidejte následující:

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

Přidejte následující do `.tex` souboru následující řádek:

```latex
\workitems
{Vyvinul nový produkt}
{Zvýšil produktivitu o 20\%}
{Snížil náklady o \$10,000}
```

Sekce zkušeností teď vypadá o něco plněji:

![Obrázek 4.png](/files/93f9c6270249235205d88ea2874e3b11332a68a1)

Přidání sekce dovedností doplní životopis. Bylo to provedeno bez funkce třídy, protože to kód LaTeXu příliš nezkrátilo:

```latex
\section{Dovednosti}

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

Výsledkem je následující:

![Obrázek 5.png](/files/531b89f025973e00b1b5d391b36b396fc24bc628)

### Závěr

Tento dvoudílný článek by vám měl zanechat velmi základní šablonu životopisu, připravenou k rozšíření a přidávání nových sekcí.

Celý soubor třídy je následující:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 vlastní třída životopisu]
\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` soubor je následující:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Vzdělání}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Práce}
\datedsubsection{ABC Limited}{2008-Now}
\workitems
{Vyvinul nový produkt}
{Zvýšil produktivitu o 20\%}
{Snížil náklady o \$10,000}

\section{Dovednosti}
\begin{tabular}{l l l l}
C\# & T-SQL & Javascript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}

\end{document}
```

Výsledkem je následující dokument:

![Obrázek 6.png](/files/433abdd05c1e8d963cf39a479f564d4c25b04e57)

Tento tutoriál by měl poskytnout skvělý výchozí bod pro životopis s prostorem pro rozšíření.

[Část 1](/latex/cs/dalsi-temata/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Část 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/cs/dalsi-temata/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.
