Aprendiendo Latex para hacer mi curriculum vitae

Supongo que todos aman aquella parte de la película Iron Man donde el brillante Tony Stark aprende cosas geniales en solo una noche. Este es un caso similar. Trataré de enseñarles el sistema de composición de documentos LaTeX, mientras lo aprendo y creo el curriculum vitae (hoja de vida, resume, currículo, cv o como lo conozcas) más importante hasta este momento, con la ayuda de LaTeX para hacerlo lo más sencillo y efectivo posible.

tony start latex meme

Introducción

Para aquellos que se lo preguntan latex es un programa  que sirve para de la documental de rápidamente enfocándose en el contenido y no en la presentación.

Como voy a hacer un currículum vitae para una empresa demasiado seria usaré una plantilla muy seria, en el caso de ustedes si tienen imágenes pueden usarlas como infografías sin mucha complejidad, como este ejemplo:

plantilla de cv con infografías
Demasiado atractivo pero muy informal para el caso

que pueden hallar aquí.

Para no iniciar completamente de cero elegí esta plantilla que de hecho se ve algo así:

plantilla de CV Overleaf en latex

Colores en Latex

Blanco y negro es aburrido… ¡Pongámosle color!.

Hay dos paquetes básicos de nos permiten ponerle color a un documento, estos se llaman color y xcolor.

Para llamar a los paquetes en latex deberemos de pedirlos de la primera parte del documento mediante el comando usepackage.

\usepackage{color}
\usepackage[dvipsnames]{xcolor}

Estos  paquetes son mutuamente excluyentes. Color es la versión simple que tiene 8 colores y xcolor es la que puede permitir sacar una mayor gama.

Los colores predefinidos en color son:

  1. white (Blanco)
  2. black (Negro)
  3. red (Rojo)
  4. green (Verde)
  5. blue (Azul)
  6. cyan (Cian)
  7. magenta
  8. yellow (Amarillo)

En el caso de xcolor le mandamos la opción dvipsnames entre corchetes para que nos reconozca algunos nombres de colores extras para no tener que poner sus valores en RGB.

Para xcolor los colores predefinidos son:

dvips color names

Para ambos paquetes el formato es el siguiente para pintar un texto de color:

\textcolor{ Nombre de color }{ Texto }

Por ejemplo:

\textcolor{BrickRed}{ Ruslan López Carro }

pondrá mi nombre en un color rojo no tan intenso como red del paquete color.

Alineación de títulos en Latex

Para poner texto alineado a la izquierda que no sea dentro del documento princial usaremos vbox, en vez de centerline que s lo que tiene para centrarlo.

Adicionalmente para alinear horizontalmente podemos usar moveright y moveleft para desplazar a la derecha o la izquierda.

\moveleft.1\hoffset\vbox{\large\bf\textcolor{BrickRed}{ Ruslan López Carro}} % Your name at the top

Líneas horizontales en Latex

Las líneas horizontales se hacen con el comando hrule, como yo no quiero la línea horizontal al comentaré poniendo un signo porcentual al inicio de la línea.

%\moveleft\hoffset\vbox{\hrule width\resumewidth height 1pt}\smallskip % Horizontal line after name; adjust line thickness by changing the '1pt'

Espacios verticales en Latex

Los espacios verticales o saltos de línea se hacen mediante el comando vspace seguido de el tamaño de espacio que necesitemos.

\vspace{5mm} %5mm vertical space

Tamaños de fuentes en Latex

ComandoSalida
tinyF-tiny.png
scriptsizeF-scriptsize.png
footnotesizeF-footnotesize.png
smallF-small.png
ormalsizeF-normalsize.png
largeF-large.png
LargeF-large2.png
LARGEF-large3.png
hugeF-huge.png
HugeF-huge2.png

Aplicando esto en el código para acentuar el nombre nos queda:

\moveleft.1\hoffset\vbox{\huge\bf\textcolor{BrickRed}{ Ruslan López Carro}} % Your name at the top

Acentos en Latex

Para aquellos como yo, que en nuestro idioma hay caracteres unicode les recomiendo usar el paquete inputenc para evitar tener que escribir cada caracter unicode como una secuencia que es difícil de entender a simple vista. Por ejemplo, los acentos se ponen normalmente:

as\'i

Pero incluyendo el paquete de esta forma:

\usepackage[utf8]{inputenc} % reemplaza con su codificacion

podemos usarlos de manera normal.

Currículum Vitae terminado en Latex

cv terminado

Finalmente usando todo lo mencionado anteriormente, el código fuente para el curriculum vitae sería algo así:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Medium Length Graduate Curriculum Vitae
% LaTeX Template
% Version 1.1 (9/12/12)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% Original author:
% Rensselaer Polytechnic Institute (http://www.rpi.edu/dept/arc/training/latex/resumes/)
%
% Important note:
% This template requires the res.cls file to be in the same directory as the
% .tex file. The res.cls file provides the resume style used for structuring the
% document.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------------------------------------------------------------------
%	PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------

\documentclass[margin, 10pt]{res} % Use the res.cls style, the font size can be changed to 11pt or 12pt here

\usepackage{helvet} % Default font is the helvetica postscript font
\usepackage{newcent} % To change the default font to the new century schoolbook postscript font uncomment this line and comment the one above
\usepackage[utf8]{inputenc}                  % reemplace con su codificacion
\usepackage[dvipsnames]{xcolor}

\setlength{\textwidth}{5.1in} % Text width of the document

\begin{document}

%----------------------------------------------------------------------------------------
%	NAME AND ADDRESS SECTION
%----------------------------------------------------------------------------------------

\moveleft.1\hoffset\vbox{\huge\bf\textcolor{BrickRed}{ Ruslan López Carro}} % Your name at the top
 
%\moveleft\hoffset\vbox{\hrule width\resumewidth height 1pt}\smallskip % Horizontal line after name; adjust line thickness by changing the \'1pt\'
\vspace{5mm} %5mm vertical space
\moveleft.1\hoffset\vbox{\large\bf Java Developer} % Your name at the top
\vspace{5mm} %5mm vertical space
 %centrar con \moveleft.5\hoffset\centerline\moveleft.1\hoffset\vbox{****** *** * * ***} % Your address
\moveleft.1\hoffset\vbox{****** **** ****} % Your address
\moveleft.1\hoffset\vbox{(**)* *** ** *} % Your phone
\moveleft.1\hoffset\vbox{**** ****** *** *} % Your mail

%----------------------------------------------------------------------------------------

\begin{resume}

%----------------------------------------------------------------------------------------
%	OBJECTIVE SECTION
%----------------------------------------------------------------------------------------
 
\section{\textcolor{Maroon}{PERSONAL SUMMARY}}  

A Java programming language and netbeans evangelist focused on innovate and help others. A full time learner. My confort zone is being always out of my confort zone.

%----------------------------------------------------------------------------------------
%	AREAS OF EXPERTISE SECTION
%----------------------------------------------------------------------------------------
 
\section{\textcolor{Maroon}{AREAS OF EXPERTISE}}  

JavaSE, Java EE, Expert Systems, Netbeans Plugins, Mobile Apps

%----------------------------------------------------------------------------------------
%	Technology SKILLS SECTION
%----------------------------------------------------------------------------------------

\section{\textcolor{Maroon}{KEY \\ SKILLS}} 

{\sl Proficiency in the following Programming Languages:} Java, Dukescript, Typescript, ES5, ES6, unityscript( typed javascript for game development), matlab/octave, ISO prolog, C, php, PL/SQL, Latex. \\
{\sl Other Programming Languages:} Adobe Flex\'s Action Script, CoffeScript, Ruby, Visual Basic, Clojure, C\#. \\
{\sl Technologies:} Spring, Spring Web-Flow, JBoss Seam, Richfaces, Primefaces, Struts, Hibernate, JSP, Servlets, JavaMail, JMF, Java2D, Java3D, Semantic Web Builder, CodenameOne, jQuery, jQuery Mobile, Bootstrap3, dojo, SASS/SCSS, Arduino, NodeJS, MySQL, Git, SVN, JUnit3, JUnit4, Selenium, PITest . \\

%----------------------------------------------------------------------------------------
%	PROFESSIONAL EXPERIENCE SECTION
%----------------------------------------------------------------------------------------
 
\section{\textcolor{Maroon}{EXPERIENCE}}

{\sl Software Development Professional} \hfill January 2016 - Present \\
National electoral Institute, Mexico City, Federal District, Mexico
%\begin{itemize}
%\item Deployed standardization techniques throughout a large codebase.
%\item Developed and designed a large AngularJS web application.
%\item Leveraged Golang\'s compiled nature to simplify deployments and decrease ops issues.
%\item Developed and maintained the development environment used by front end software engineers.
%\item Developed a distributed authentication and routing system for a SOA using Golang, Nginx, and Lua.
%\item Integrated the Jenkins Continuous Integration(CI) systems into the existing deployment processes.
%\item Implemented web application security standards defined by OWASP.
%\end{itemize} 

{\sl Department Chair } \hfill July 2014 - December 2015 \\
PROSPERA: Social Inclusion Program, Mexico City, Federal District, Mexico
%\begin{itemize} \itemsep -2pt % Reduce space between items
%\item Designed and developed Django/AngularJS software systems for the Department of Defense, Army, and Navy.
%\item Presented software demos to Department of Defense derived clients.
%\end{itemize}
 
{\sl Java Web Developer} \hfill November 2014 - June 2015\\
Autonomous University of Tlaxcala, Mexico City, Federal District, Mexico
%\begin{itemize} 
%\item Performed the full software development process with the end result of deploying a large scale software system that manages access to high priority physical and logical assets.
%\item Designed the architecture for a Django/AngularJS software system.
%\end{itemize} 

{\sl Programmer} \hfill January 2011 - August 2012\\
Nextia Games, Tlaxcala, Tlaxcala , Mexico
%\begin{itemize} 
%\item Performed the full software development process with the end result of deploying a large scale software system that manages access to high priority physical and logical assets.
%\item Designed the architecture for a Django/AngularJS software system.
%\end{itemize} 

{\sl System Administrator} \hfill March 2012 - August 2012\\
COBAT, Tlaxcala, Tlaxcala , Mexico
%\begin{itemize} 
%\item Performed the full software development process with the end result of deploying a large scale software system that manages access to high priority physical and logical assets.
%\item Designed the architecture for a Django/AngularJS software system.
%\end{itemize} 

%----------------------------------------------------------------------------------------
%	EDUCATION SECTION
%----------------------------------------------------------------------------------------

\section{\textcolor{Maroon}{EDUCATION}}

{\sl Bachelor of Computer Science, with speciality on Artifficial Intelligence}  \hfill 2006--2013 \\
Autonomous University of Tlaxcala, Tlaxcala, Mexico\\
{\sl Technician on Italian language and culture}  \hfill 2002--2007 \\
Società Dante Alighieri, Tlaxcala, Mexico\\%----------------------------------------------------------------------------------------

\end{resume}
\end{document}

  • Cursos de LinkedIn Learning

    Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma virtual de cursos propiedad de Microsoft. Hallarás mucho material en inglés, pues prácticamente todos los cursos vienen con subtítulos en castellano y en la parte técnica son muy buenos debido a la adquisición de Lynda.com. En mi opinión la plataforma…


  • Mockito: Snippets de código

    Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad. Claro que también los puedes usar para tu desarrollo en el día a día. Mock básico Si te llegan a mostrar algo como esto es mejor que sospeches, mockito se usa principalmente para pruebas de integración. Si llegas a ver…


  • Expresiones regulares en Java: analizar un String
    Expresiones regulares en Java: analizar un String

    En este tutorial aprenderá a usar expresiones regulares en Java de manera práctica para contar elementos de una cadena, en particular: letras vocales consonantes espacios Para los datos vamos a implementar un método para cada propiedad deseada y para ir más lejos vamos a crear una vista HTML para mostrar los resultados con la ayuda…


javapro.org