Apuntes mientras aprendo sobre software y computadoras.

programación

Darle forma a un Currículum Vitae usando el lenguaje LaTeX

En este apunte rápido voy a revisar cómo agregarle formato a un Currículum Vitae usando LaTeX.

Sin dudas hay muchas opciones para crear un Curriculum Vitae (CV). Podemos por ejemplo crear nuestra “hoja de vida” utilizando un procesador de texto con formato, al estilo de Word o LibreOffice Writter.

El problema de usar un procesador de texto para esta tarea radica principalmente en un punto.

Por lo general cuando modificamos una sección del CV en uno de esos programas, la posición dentro de la hoja del resto de las secciones se ve intercambiada al mismo tiempo. Si queremos por ejemplo utilizar dos columnas, el menor agregado de un dato nuevo hace que todo se desplace para un lado o para el otro.

Usando LaTeX es posible remediar eso. Con suerte nos puede quedar una planilla de CV que puede actualizarse de manera fácil con el pasar del tiempo.

La idea para este currículum vitae

No soy un experto en LaTeX… apenas estoy empezando a utilizarlo. Pero si conozco como quiero que luzca este CV:

  • Tiene que ser minimalista, a una sola columna.
  • Secciones directas, separadas por lineas.
  • Solamente cuatro secciones: Proyectos, Educación, Habilidades y Experiencia.
  • Todos los datos tiene que entrar en una sola carilla, pero puede ampliarse a más.
  • Sin foto (aunque se le puede agregar una fotografía de ser necesario).

Vale aclarar que estoy utilizando un sistema operativo Linux. Y estoy escribiendo en LaTeX utilizando el programa Texmaker.

El Código:

\documentclass[12pt]{article}

\usepackage[a4paper, left=1.5cm, top=2cm, bottom=1.5cm, right=1.5cm]{geometry}
\usepackage{enumitem}
\usepackage{url}
\usepackage{tikz}
\usepackage{lastpage}
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhead[R]{Currículum Vitae}
\cfoot{Página \thepage\ de \pageref{LastPage}}


\begin{document}
\section*{Contacto}
\begin{itemize}[label=]
  \item \textbf{Nombre y Apellido:}
  \item \textbf{Dirección:}
  \item \textbf{Email:}  
  \item {Espacio dedicado para agregar datos personales.}
\end{itemize}

% Linea Horizontal
\begin{center}
  \begin{tikzpicture}
    \draw[line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

\section{Proyectos}
\begin{itemize}[label=]
  \item \textbf{Blog Personal}
  \begin{itemize}[label=]
    \item Sitio Web: \url{https://www.ejemplo.com}
    \item Descripción: Datos del proyecto y otros elementos. 
  \end{itemize}
  
\end{itemize}

% Linea Horizontal
\begin{center}
  \begin{tikzpicture}
    \draw[line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

\section{Educación}
\noindent\begin{minipage}{\textwidth}
\begin{minipage}[t]{0.45\textwidth}
\begin{itemize}[label=]
  \item \textbf{Título} \\
  Institución  \\
  Detalles \\
  Año
\end{itemize}
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\textwidth}
\begin{itemize}[label=]
  \item \textbf{Título} \\
  Institución  \\
  Detalles \\
  Año
\end{itemize}
\end{minipage}
\end{minipage}


% Linea Horizontal
\begin{center}
  \begin{tikzpicture}
    \draw[line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

\section{Habilidades}
\begin{minipage}{0.5\textwidth} % Primera columna
\begin{itemize}
  \item \textbf{Conocimiento 1} \\
  Descripción...
  \item \textbf{Conocimiento 2} \\
  Descripción...
  \item \textbf{Conocimiento 3} \\
  Descripción...
\end{itemize}
\end{minipage}
\begin{minipage}{0.5\textwidth} % Segunda columna
\begin{itemize}[label=]
  \item \textbf{Conocimiento 4} \\
  Descripción...
  \item \textbf{Conocimiento 5} \\
  Descripción...
  \item \textbf{Conocimiento 6} \\
  Descripción... 
\end{itemize}
\end{minipage}


% Linea Horizontal
\begin{center}
  \begin{tikzpicture}
    \draw[line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

\section{Experiencia Laboral}
\begin{itemize}[label=]
  \item \textbf{Título del cargo} \\
  Nombre de la compañia \\
  Lugar \\
  Año 1 \\
  Descripción: Algunos datos para expandir la experiencia laboral.
  
% Se pueden agregar más items de experiencia. 
\end{itemize}

% Linea Horizontal.
\begin{center}
  \begin{tikzpicture}
    \draw[line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

\AtEndDocument{\label{LastPage}}

\end{document}

El resultado:

Cabecera y Pie de Página

Esta linea del código abre el documento con clase de artículo, y establece un tamaño de letra de 12pt para el resto del mismo.

\documentclass[12pt]{article}

Luego sigue el tipo de hoja (A4), y especificar algunos detalles para los márgenes.

\usepackage[a4paper, left=1.5cm, top=2cm, bottom=1.5cm, right=1.5cm]{geometry}

Y lo siguiente, agregar algunos paquetes (packages) para darle nuevas funcionalidades al proyecto:

\usepackage{enumitem}
\usepackage{url}
\usepackage{tikz}
\usepackage{lastpage}
\usepackage{fancyhdr}

Por último, le damos estilo al CV agregándole una cabecera.

Más importante aún, le damos la opción de agregar de forma dinámica un pie de página que puede decir “página 1 de…”. Eso va a servir para informar cuantas paginas tiene el proyecto, es algo muy útil creo yo incluso para CV de una sola página.

\pagestyle{fancy}
\fancyhead[R]{Currículum Vitae}
\cfoot{Página \thepage\ de \pageref{LastPage}}

Pero para que eso del pie de página funcione, no tengo que olvidar poner al final del proyecto:

\AtEndDocument{\label{LastPage}}

Categoría a una columna

Para aprovechar mejor el espacio, algunas de las secciones del CV se encuentran a una columna y otras a dos columnas.

Un ejemplo de sección a una columna es la de “proyectos”:

\section{Proyectos}
\begin{itemize}[label=]
  \item \textbf{Blog Personal}
  \begin{itemize}[label=]
    \item Sitio Web: \url{https://www.ejemplo.com}
    \item Descripción: Datos del proyecto y otros elementos. 
  \end{itemize}
  
\end{itemize}

Usando “itemize” listamos items sin enumerarlos.

Si quiero evitar que una sección del CV resulte enumerada, tengo que agregarle un asterisco al llamarla, de esta forma:

\section*{Proyectos}

Sección a dos columnas

Un ejemplo de sección a dos columnas es la de “Habilidades”:

\section{Habilidades}
\begin{minipage}{0.5\textwidth} % Primera columna
\begin{itemize}
  \item \textbf{Conocimiento 1} \\
  Descripción...
  \item \textbf{Conocimiento 2} \\
  Descripción...
  \item \textbf{Conocimiento 3} \\
  Descripción...
\end{itemize}
\end{minipage}
\begin{minipage}{0.5\textwidth} % Segunda columna
\begin{itemize}[label=]
  \item \textbf{Conocimiento 4} \\
  Descripción...
  \item \textbf{Conocimiento 5} \\
  Descripción...
  \item \textbf{Conocimiento 6} \\
  Descripción... 
\end{itemize}
\end{minipage}

El entorno “Minipage” sirve para dividir una página a lo ancho.

Linea divisoria

Cada sección del CV se encuentra separada por una linea divisoria, gracias al siguiente código:

\begin{center}
  \begin{tikzpicture}
    \draw[line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

Claro que es posible convertirla en una linea de puntos usando la opción “dotted”:

% Linea de puntos.
\begin{center}
  \begin{tikzpicture}
    \draw[dotted,line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

O también se puede hacer una lineas de guiones mediante la opción “dashed”:

% Linea de guiones
\begin{center}
  \begin{tikzpicture}
    \draw[dashed,line width=0.5pt] (0,0) -- (\textwidth,0);
  \end{tikzpicture}
\end{center}

Conclusión:

Con esto le doy un cierre al apunte sobre cómo agregarle formato a un Currículum Vitae usando LaTeX.

Bueno, realmente no expliqué mucho sobre el “cómo” hacerlo… es más bien un ejemplo, con el código y el resultado final.

¿Vale la pena hacer algo por el estilo hoy? Utilizar LaTeX para algo como esto tiene sus ventajas. Nos permite quedarnos con un formato de CV que se puede actualizar rápido y se puede mejorar con el pasar del tiempo.

El problema parece no tanto encontrarse tanto en usar este lenguaje, sino en que hoy hay muchas alternativas más accesibles. Por ejemplo, hay plantillas de CV directamente en linea. Es difícil resistirse a la facilidad de ese tipo de herramientas.

Si encontrás algún error en este material por favor avisame para que pueda corregirlo.

La seguimos en el próximo apunte.

Recursos:

Leave a Reply