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

# Cómo escribir un archivo de clase LaTeX y diseñar tu propio CV (Parte 2)

[Parte 1](/latex/es/mas-temas/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md) | Parte 2

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

Esto es una continuación de [Cómo escribir un archivo de clase LaTeX y diseñar tu propio CV (Parte 1)](/latex/es/mas-temas/25-how-to-write-a-latex-class-file-and-design-your-own-cv-part-1.md), repasando más opciones para crear un CV y usando archivos de clase para ello.

En la última publicación, habíamos creado 2 archivos: `cv.tex` y `my_cv.cls`. El archivo conten, `cv.tex`, contenía lo siguiente:

```latex
\documentclass{my_cv}
\begin{document}
\section{Educación}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Trabajo}
\datedsubsection{ABC Limited}{2008-Now}
\end{document}
```

`my_cv.cls` contenía algunos valores predeterminados de formato, así como algunos comandos para usar:

```latex
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_cv}[6/6/2013 custom CV class]
\LoadClass{article}
\RequirePackage{titlesec}
\titleformat{\section}       % Personalizar el comando \section
{\Large\scshape\raggedright} % Haz que los encabezados de \section sean grandes (\Large),
                             % versales pequeñas (\scshape) y alineados a la izquierda (\raggedright)
  {}{0em}            % Se puede usar para dar un prefijo a todas las secciones, como 'Sección ...'
  {}                 % Se puede usar para insertar código antes del encabezado
  [\titlerule]       % Inserta una línea horizontal después del encabezado
  \titleformat{\subsection}
  {\large\scshape\raggedright}
  {}{0em}
  {}
\newcommand{\datedsection}[2]{%
  \section[#1]{#1 \hfill #2}%
}
\newcommand{\datedsubsection}[2]{%
  \subsection[#1]{#1 \hfill #2}%
}
```

Esto genera el siguiente documento:

![Figura 1.png](/files/6f3ba9ec78e40f239c65a632601728994c08b800)

El `#1` y `#2` se refieren al primer y segundo argumento o parámetro que se están pasando al comando. En la primera línea de un `\newcommand`, la sección entre paréntesis, por ejemplo `[2]` se refiere al número de parámetros que se están pasando a la función. La función puede luego llamar a estos parámetros usando `#1`, `#2`, y así sucesivamente, dependiendo de cuántos parámetros requiera la función. Las funciones con más parámetros se mostrarán más adelante en el artículo.

Seguiremos añadiendo una sección de nombre y contacto, así como continuando con las secciones de experiencia y otras.

### Nombre e información de contacto

En un CV, el nombre suele estar en la parte superior, con la información de contacto para postular a trabajos. Esto se logrará añadiendo nuevas funciones a nuestro archivo de clase. El nombre puede añadirse usando una función sencilla:

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

Esto produce un nombre centrado y con una fuente grande dondequiera que se use. Se puede llamar así:

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

Ahora, para la información de contacto. Añade lo siguiente al archivo de clase:

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

Luego llama a la función desde el documento:

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

Todo esto se muestra muy bien, con el nombre y la información de contacto así:

![Figura 2.png](/files/2b8375cae74d9daecd1e99471b3912b17c23bc80)

Esto muestra la información de contacto con un formato agradable y un separador en forma de viñeta entre los elementos. Esto puede ajustarse para direcciones más largas si es necesario añadiendo una segunda función:

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

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

Esto se ve un poco extraño con la información corta, pero si una dirección es particularmente larga, resulta más flexible usarlo. La mejor parte de esto es que el documento TeX requiere cambios mínimos:

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

Ese es el objetivo principal de usar archivos de clase. Permitir cambios mínimos en el contenido del documento y controlar externamente la presentación (cómo se muestra el contenido).

### Ampliando la sección de experiencia

Un CV debería tener algo más que una lista de empleos. Debe añadirse debajo de cada elemento alguna descripción de lo que se hizo en los trabajos. 3 viñetas por empleo es un buen equilibrio entre detalle y descripción. Esto puede ajustarse fácilmente añadiendo o eliminando nodos. Añade lo siguiente al archivo de clase:

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

Añade lo siguiente al `.tex` archivo:

```latex
\workitems
{Desarrolló un nuevo producto}
{Mejoró la productividad en un 20\%}
{Redujo los costes en \$10,000}
```

Ahora la sección de experiencia se ve un poco más completa:

![Figura 4.png](/files/75c9545118a7011b755b0d1d451bc37839ca30ac)

Añadir una sección de habilidades completa el currículum. Esto se hizo sin una función de clase, ya que no acortaba mucho el código LaTeX:

```latex
\section{Habilidades}

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

Esto da como resultado lo siguiente:

![Figura 5.png](/files/9e257ba60de933a52362d08ffd3b75e880433251)

### Conclusión

Este artículo de dos partes debería haberte dejado con una plantilla de CV muy básica, lista para ampliarse y añadir nuevas secciones.

El archivo completo de la clase es el siguiente:

```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}%
}
```

El `.tex` el archivo es el siguiente:

```latex
\documentclass{my_cv}
\begin{document}
\name{John Smith}
\contact{123 Broadway}{London}{UK 12345}{john@smith.com}{(000)-111-1111}
\section{Educación}
\datedsubsection{University of Nowhere}{2004-2008}
\section{Trabajo}
\datedsubsection{ABC Limited}{2008-Now}
\workitems
{Desarrolló un nuevo producto}
{Mejoró la productividad en un 20\%}
{Redujo los costes en \$10,000}

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

\end{document}
```

Esto da como resultado el siguiente documento:

![Figura 6.png](/files/acf4e7ff86a11c4b2e690367be619bc608261cd8)

Este tutorial debería proporcionar un gran punto de partida para un CV, con margen para ampliarlo.

[Parte 1](/latex/es/mas-temas/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/es/mas-temas/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.
