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

# Comment écrire un fichier de classe LaTeX et concevoir votre propre CV (partie 2)

[Partie 1](/latex/fr/autres-sujets/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Partie 2

**Auteur : Cody Herring (juin 2013)**

Ceci est la suite de [Comment écrire un fichier de classe LaTeX et concevoir votre propre CV (Partie 1)](/latex/fr/autres-sujets/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), en passant en revue d'autres options pour créer un CV et en utilisant des fichiers de classe pour ce faire.

Dans le précédent article, nous avions créé 2 fichiers : `cv.tex` et `my_cv.cls`. Le fichier conten, `cv.tex`, contenait ce qui suit :

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

`my_cv.cls` contenait quelques paramètres de mise en forme par défaut, ainsi que quelques commandes à utiliser :

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 custom CV class]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % Personnalisez la commande \section
{\Large\scshape\raggedright} % Rend les en-têtes de section grands (\Large),
                             % en petites capitales (\scshape) et alignés à gauche (\raggedright)
  {}{0em}            % Peut être utilisé pour donner un préfixe à toutes les sections, comme 'Section ...'
  {}                 % Peut être utilisé pour insérer du code avant le titre
  [\titlerule]       % Insère une ligne horizontale après le titre
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Cela génère le document suivant :

![Figure 1.png](/files/dcb10aa2c95816ac28006bef2b93d57f6f47a350)

Le `#1` et `#2` font référence au premier et au deuxième argument ou paramètre transmis à la commande. Dans la première ligne d'un `\newcommand`, la section entre crochets, par ex. `[2]` fait référence au nombre de paramètres transmis à la fonction. La fonction peut ensuite appeler ces paramètres en utilisant `#1`, `#2`, et ainsi de suite, selon le nombre de paramètres requis par la fonction. Les fonctions avec davantage de paramètres seront présentées plus loin dans l'article.

Nous continuerons en ajoutant une section nom et contact, ainsi qu'en poursuivant avec la section expérience et les autres sections.

### Nom et coordonnées

Dans un CV, le nom se trouve généralement en haut, avec les coordonnées pour être contacté pour des emplois. Cela sera réalisé en ajoutant de nouvelles fonctions à notre fichier de classe. Le nom peut être ajouté à l'aide d'une fonction simple :

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

Cela produit un nom centré en grande police partout où il est utilisé. On peut l'appeler ainsi :

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

Maintenant, pour les coordonnées. Ajoutez ce qui suit au fichier de classe :

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

Puis appelez la fonction depuis le document :

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

Tout cela s'affiche joliment, avec le nom et les coordonnées comme suit :

![Figure 2.png](/files/df5fddfbb05f4757318487e8f4f9ca3c89bb6672)

Cela affiche les coordonnées joliment mises en forme avec un point médian entre elles. Cela peut être ajusté pour des adresses plus longues si nécessaire en ajoutant une seconde fonction :

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

![Screenshot3.png](/files/119595570257abf9105ff174f029ea190a68ad12)

Cela paraît un peu étrange avec les informations courtes, mais si une adresse est particulièrement longue, c'est plus flexible à utiliser. Le plus intéressant est que le document TeX nécessite très peu de changements :

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

C'est le principal intérêt d'utiliser des fichiers de classe. Permettre des changements minimaux dans le contenu du document, tout en contrôlant la présentation (la manière dont le contenu est affiché) de manière externe.

### Développer la section Expérience

Un CV ne doit pas se limiter à une liste d'emplois. Une description de ce qui a été fait dans les postes devrait être ajoutée sous chaque élément. 3 puces par emploi offrent un bon équilibre entre détail et description. Cela peut facilement être ajusté en ajoutant ou en supprimant des éléments. Ajoutez ce qui suit au fichier de classe :

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

Ajoutez ce qui suit à la `.tex` fichier :

```latex
\workitems
{Développement d'un nouveau produit}
{Amélioration de la productivité de 20\%}
{Réduction des coûts de 10 000\$}
```

Maintenant, la section expérience paraît un peu plus complète :

![Figure 4.png](/files/9e2fdb062d415b8efb7039610df13e49cf1c799d)

L'ajout d'une section compétences complète le CV. Cela a été fait sans fonction de classe, car cela ne raccourcissait pas beaucoup le code LaTeX :

```latex
\section{Compétences}

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

Cela donne le résultat suivant :

![Figure 5.png](/files/e8e12f446dd9ea7babb5dcd30a06392ed924c76f)

### Conclusion

Cet article en deux parties devrait vous avoir laissé un modèle de CV très basique, prêt à être développé et à accueillir de nouvelles sections.

Le fichier de classe complet est le suivant :

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

Le `.tex` fichier est le suivant :

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Formation}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Travail}
\datedsubsection{ABC Limited}{2008-Now}
\workitems
{Développement d'un nouveau produit}
{Amélioration de la productivité de 20\%}
{Réduction des coûts de 10 000\$}

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

\end{document}
```

Cela donne le document suivant :

![Figure 6.png](/files/6d0cc08b10b69f9f80f6dde055424d4f09484773)

Ce tutoriel devrait constituer un excellent point de départ pour un CV, avec une marge d'extension.

[Partie 1](/latex/fr/autres-sujets/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Partie 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/fr/autres-sujets/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.
