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

# Come scrivere un file di classe LaTeX e progettare il tuo CV (Parte 1)

Parte 1 | [Parte 2](/latex/it/altri-argomenti/26-how-to-write-a-latex-class-file-and-design-your-own-cv-part-2.md)

**Autore: James Allen (marzo 2011)**

Tutti vogliono un CV dall'aspetto professionale e non mancano i modelli LaTeX che possono dartene uno. Se sei come me, però, vorrai avere un CV tutto tuo e personalizzarlo. Questo significa che devi essere in grado di personalizzarne da solo l'aspetto e lo stile, cosa che in LaTeX può essere notoriamente difficile. In questa serie di post del blog spero di guidarti nella creazione del tuo file di classe personalizzato e di mostrarti che può essere facile formattare il tuo CV esattamente come vuoi. Ci concentreremo su uno stile per CV, ma i metodi saranno identici per qualsiasi tipo di documento.

### Che cos'è un file di classe?

Quando scrivi `\documentclass{article}` nel tuo file LaTeX, stai includendo il file di classe `article.cls`. Questo definisce tutti i comandi come `\section` e `\title` che servono a strutturare il documento. Configura anche il modo in cui questi comandi influenzano il formato e l'impaginazione della pagina.

### Impostare il proprio file di classe

Il modo più elegante per personalizzare il formato di un documento è mantenere tutte queste informazioni in un file di classe personale. Questo mantiene la struttura del documento nettamente separata dalla formattazione e ne consente il facile riutilizzo. È facile impostarlo, quindi crea un documento chiamato cv.tex con il seguente contenuto:

```latex
\documentclass{my_cv}
\begin{document}
\section{Istruzione}
\subsection{Università di Nessun Luogo}
\section{Lavoro}
\subsection{ABC Limited.}
\end{document}
```

Sta tentando di caricare il tuo file di classe personalizzato `my_cv.cls`, che non esiste ancora. Crea `my_cv.cls` nella stessa cartella di `cv.tex` e scrivici la seguente riga:

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

Se compili il documento ora dovresti vedere le intestazioni nello stile predefinito di article.

Quindi cosa è successo qui? I file di classe devono contenere molte informazioni di formattazione e configurazione interna per far funzionare correttamente LaTeX, ma non vogliamo doverle inserire tutte manualmente. Invece possiamo basare il nostro nuovo file di classe su `article.cls`. Usiamo `\LoadClass` di includere `article.cls` e carichiamo tutti i comandi e gli stili definiti lì. Nota che non usiamo il solito `\documentclass` comando per includere `article.cls` perché `\documentclass` dovrebbe essere richiamato una sola volta, all'inizio del documento LaTeX.

### Informare LaTeX della tua classe

Tutti i file di classe dovrebbero iniziare con due righe simili alle seguenti, che dovresti aggiungere in cima a `my_cv.cls` ora:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[2011/03/26 La mia classe CV personalizzata]
```

La `\NeedsTeXFormat` i comandi dicono al compilatore per quale versione di LaTeX è destinato il pacchetto. L'attuale versione di LaTeX è LaTeX2e e quasi tutte le distribuzioni la usano.

La `\ProvidesClass` comando fornisce al compilatore alcune informazioni sul tuo pacchetto. Il primo argomento dovrebbe corrispondere al nome del file del tuo file di classe e dice a LaTeX come si chiama il tuo pacchetto. Il secondo argomento è facoltativo e fornisce una descrizione della tua classe che apparirà nel log e in altri punti. La descrizione deve iniziare con una data esattamente nel formato sopra e dovrebbe essere la data dell'ultima modifica del pacchetto. Questo può essere usato quando si include la classe per controllare di avere una versione abbastanza recente. Per esempio, se la includi tramite `\documentclass{my_cv}[2012/01/01]` con una data successiva a quella nella descrizione della classe, verrà mostrato un avviso che segnala che la classe è obsoleta.

### Modificare le intestazioni delle sezioni

Le intestazioni standard delle sezioni di article non si adattano davvero a un CV, quindi vorremmo sostituirle con qualcosa di più elegante. Per farlo, possiamo ridefinire il `\section` comando per produrre un'intestazione personalizzata.

Fortunatamente esiste già un eccellente pacchetto chiamato `titlesec` che offre un modo semplice per personalizzare gli stili delle intestazioni. Includilo nel file di classe con:

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

Nota che dovremmo usare `\RequirePackage` piuttosto che il solito `\usepackage` comando perché ci troviamo in un file di classe. Il `\RequirePackage` comando assicura che ogni pacchetto venga caricato una sola volta, anche se richiamato più volte da file di stile e di classe diversi.

La `titlesec` pacchetto fornisce il comando `\titleformat` che ci permette di personalizzare le intestazioni delle sezioni. Aggiungi quanto segue alla fine di `my_cv.cls` per personalizzare il formato dell'intestazione:

```latex
\titleformat{\section}         % Personalizza il comando \section
  {\Large\scshape\raggedright} % Rendi le intestazioni di \section grandi (\Large),
                               % in maiuscoletto (\scshape) e allineate a sinistra (\raggedright)
  {}{0em}                      % Può essere usato per dare un prefisso a tutte le sezioni, come 'Sezione ...'
  {}                           % Può essere usato per inserire codice prima dell'intestazione
  [\titlerule]                 % Inserisce una linea orizzontale dopo l'intestazione
```

Se compiliamo `cv.tex` ora vedremo che abbiamo alcune intestazioni principali più adatte a un CV:

![Screenshot1.png](/files/2ba64f5d0b5665aca4ba073cd453f09b78b55188)

Possiamo personalizzare anche le intestazioni di \subsection:

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

Le sottosezioni sono ora nello stesso stile:

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

Dovresti provare alcune delle opzioni di formattazione disponibili per vedere cosa ti piace:

* `\bfseries`, `\itshape`: rendi l'intestazione in grassetto o in corsivo;
* `\scshape`: maiuscoletto;
* `\small`, `\normalsize`, `\large`, `\Large`, `\LARGE`, `\huge`, `\Huge`: imposta la dimensione del carattere;
* `\rmfamily`, `\sffamily`, `\ttfamily`: imposta il tipo di carattere, rispettivamente, con grazie, senza grazie o a spaziatura fissa.

### Aggiungere date alle intestazioni delle sezioni

Possiamo definire nuovi comandi che ci permettono di includere date nelle intestazioni delle sezioni. Includi quanto segue nel file di classe:

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

Questo definisce due nuovi comandi `\datedsection` e `\datedsubsection` che prendono due argomenti: il nome della sezione come prima, e una data che verrà composta sul lato destro della pagina. Il `\hfill` comando dice a LaTeX di riempire quanta più spazio possibile e quindi spinge il secondo argomento (`#2`) verso destra nella pagina. Modifica `cv.tex` per usare questi comandi:

```latex
\documentclass{my_cv}

\begin{document}

\section{Istruzione}
\datedsubsection{Università di Nessun Luogo}{2004--2008}
Ho frequentato l'Università di Nessun Luogo dal 2004 al 2008.

\section{Lavoro}
\datedsubsection{ABC Limited.}{2008--Now}
Ho lavorato presso ABC Limited dal 2008 in poi.

\end{document} ​
```

Il nostro CV ora contiene le date:

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

### Conclusioni

Per la prima parte di questa guida è tutto, ma spero di aver coperto abbastanza perché tu possa andare avanti e iniziare a creare file di classe utili. Non sono serviti molti comandi per creare qualcosa che già sembra un discreto modello di CV e abbiamo solo scalfito la superficie di tutto il resto che potremmo personalizzare. Nelle prossime parti di questa guida parlerò di come passare opzioni alla tua classe per configurarla, creare un bel titolo e impostare alcune opzioni generali di impaginazione.

Grazie per aver letto!

Nota che sono relativamente nuovo anch'io alla creazione di file di classe, quindi se qualcuno può indicarmi modi migliori per fare le cose che ho menzionato qui, me lo faccia sapere.

Parte 1 | [Parte 2](/latex/it/altri-argomenti/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/it/altri-argomenti/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.
