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

# Como escrever um ficheiro de classe LaTeX e desenhar o seu próprio CV (Parte 2)

[Parte 1](/latex/overleaf-learn-latex-pt/mais-topicos/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Parte 2

**Autor: Cody Herring (Junho de 2013)**

Isto é uma continuação de [Como escrever um ficheiro de classe LaTeX e desenhar o seu próprio CV (Parte 1)](/latex/overleaf-learn-latex-pt/mais-topicos/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), abordando mais opções para criar um CV e usando ficheiros de classe para o fazer.

No último artigo, tínhamos criado 2 ficheiros: `cv.tex` e `my_cv.cls`. O ficheiro conten, `cv.tex`, continha o seguinte:

```latex
\documentclass{my_cv}
\begin{document}
\section{Educação}
\datedsubsection{Universidade do Lugar Nenhum}{2004-2008}
\section{Trabalho}
\datedsubsection{ABC Limited}{2008-Atual}
\end{document}
```

`my_cv.cls` continha algumas predefinições de formatação, bem como alguns comandos para usar:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 classe de CV personalizada]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % Personaliza o comando \section
{\Large\scshape\raggedright} % Tornar os cabeçalhos \section grandes (\Large),
                             % em maiúsculas pequenas (\scshape) e alinhados à esquerda (\raggedright)
  {}{0em}            % Pode ser usado para dar um prefixo a todas as secções, como 'Secção ...'
  {}                 % Pode ser usado para inserir código antes do título
  [\titlerule]       % Insere uma linha horizontal após o título
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Isto gera o seguinte documento:

![Figura 1.png](/files/96839fa1ba1e17fe2f58b21c563c35a311295497)

O `#1` e `#2` referem-se ao primeiro e ao segundo argumento ou parâmetro que estão a ser passados para o comando. Na primeira linha de um `\newcommand`, a secção entre parênteses, por exemplo `[2]` refere-se ao número de parâmetros que estão a ser passados para a função. A função pode então aceder a esses parâmetros usando `#1`, `#2`, e assim por diante, dependendo de quantos parâmetros eram necessários para a função. As funções com mais parâmetros serão mostradas mais adiante no artigo.

Vamos continuar adicionando uma secção de nome e contacto, bem como prosseguir com a experiência e outras secções.

### Nome e informações de contacto

Num CV, o nome costuma ficar no topo, com informações de contacto para candidaturas. Isto será conseguido adicionando novas funções ao nosso ficheiro de classe. O nome pode ser adicionado usando uma função simples:

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

Isto produz um nome centrado, em letra grande, onde quer que seja usado. Isto pode ser invocado assim:

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

Agora, para as informações de contacto. Adicione o seguinte ao ficheiro de classe:

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

Depois chame a função a partir do documento:

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

Tudo isto é apresentado de forma agradável, com o nome e as informações de contacto assim:

![Figura 2.png](/files/3d5610e7cbadf17b258be3e189d567b1927dce31)

Isto apresenta as informações de contacto bem formatadas, com uma separação por ponto entre elas. Isto pode ser ajustado para moradas mais longas, se necessário, adicionando uma segunda função:

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

![Screenshot3.png](/files/57e7df7e123c67374f67c58e4461547da5fff83b)

Isto parece um pouco estranho com as informações curtas, mas se uma morada for particularmente longa, é mais flexível de usar. A melhor parte disto é que o documento TeX requer alterações mínimas:

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

Este é o principal objetivo de usar ficheiros de classe. Permitir alterações mínimas no conteúdo do documento e controlar externamente a apresentação (como o conteúdo é mostrado).

### A expandir a secção Experiência

Um CV deve ter mais do que apenas uma lista de empregos. Deve ser adicionada, em cada item, alguma descrição do que foi feito nos trabalhos. 3 pontos por emprego são um bom equilíbrio entre detalhe e descrição. Isto pode ser facilmente ajustado adicionando ou removendo itens. Adicione o seguinte ao ficheiro de classe:

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

Adicione o seguinte ao `.tex` ficheiro:

```latex
\workitems
{Desenvolveu um novo produto}
{Melhorou a produtividade em 20\%}
{Reduziu os custos em \$10.000}
```

Agora a secção de experiência está a parecer um pouco mais completa:

![Figura 4.png](/files/ffe85412a591ab04428a0ac543b20edf62607b5f)

Adicionar uma secção de competências completa o currículo. Isto foi feito sem uma função de classe, pois não encurtou muito o código LaTeX:

```latex
\section{Competências}

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

Isto resulta no seguinte:

![Figura 5.png](/files/d28c6cd50d0a5ab38e30f4bde59a569ea7f157eb)

### Conclusão

Este artigo em duas partes deve ter deixado você com um modelo de CV muito básico, pronto para expandir e adicionar novas secções.

O ficheiro de classe completo é o seguinte:

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

O `.tex` o ficheiro é o seguinte:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Educação}
\datedsubsection{Universidade do Lugar Nenhum}{2004-2008}
\section{Trabalho}
\datedsubsection{ABC Limited}{2008-Atual}
\workitems
{Desenvolveu um novo produto}
{Melhorou a produtividade em 20\%}
{Reduziu os custos em \$10.000}

\section{Competências}
\begin{tabular}{l l l l}
C\# & T-SQL & JavaScript & HTML \\
XML & JSON & SOAP & REST
\end{tabular}

\end{document}
```

Isto resulta no seguinte documento:

![Figura 6.png](/files/60b33c9269981aaebb4d5b75758f69b6e23c4bf2)

Este tutorial deve fornecer um excelente ponto de partida para um CV, com espaço para expansão.

[Parte 1](/latex/overleaf-learn-latex-pt/mais-topicos/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Parte 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/overleaf-learn-latex-pt/mais-topicos/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.
