martes, 4 de diciembre de 2012

Cómo hacer un curriculum con LaTeX

Hacer un curriculum con LaTeX, es un poco como hacer un collage, y depende de cada uno. Aquí pongo un formato posible. Quizás te de ideas para hacer el tuyo propio. Pero antes, comentaré un poco el código que uso. (Por cierto, lo que sí que te recomiendo es que ya sepas algo de LaTeX, antes de hacer un curriculum, o estarás un poco perdido.) 

  • Modificar los márgenes de la página.
LaTeX suele dejar mucho margen, lo que suele estar bien para un artículo o una tésis, pero quizás no para un curriculum. Puedes modificar los márgenes con los siguientes comandos. Para más detalles, puedes visitar otra entrada que hice anteriormente (click aquí).

\setlength{\textwidth}{190mm}
\setlength{\textheight}{270mm}
\setlength{\oddsidemargin}{-15mm}
\setlength{\evensidemargin}{-15mm}
\setlength{\topmargin}{-30mm}

  • Para ordenar el cóntenido del CV, lo escribo todo dentro de una tabla (sin bordes, claro).
Para fijar el ancho de las columnas, uso el comando "p{}":

\begin{table}[ht]
\centering
\begin{tabular}{p{40mm} p{140mm}}

\end{tabular}
\end{table}

  • Quitar encabezados y número de página.
Para que no aparezca el número de página ni nada, utilizo la siguiente instrucción, antes de \begin{document}:

\pagestyle{empty}

  • Rellenar una celda con color.
Para ello, utilizo el paquete {colortbl}, y la instrucción "\cellcolor{}":

\usepackage{colortbl}

\cellcolor{black} \textcolor{white}{Education}

  • Quitar espacio en una lista.
Cuando escribimos una lista, LaTeX añade mucho espacio entre líneas, así como al inicio y al final de la lista. Para quitar el espacio entre líneas, utilizo el paquete {enumitem} y las instrucciones [noitemsep,nolistsep]. Para quitar el espacio antes y después de la lista, utilizo el comando "\vspace{}", con el que añades o quitas espacio entre renglones. Como muestro a continuación:

\usepackage{enumitem}
\vspace{-2mm}
\begin{itemize}[noitemsep,nolistsep]
\item Implementation new features per request from control group.
\item Testing on bench.
\item Evaluation of upgrade to the new software version: in progress.
\vspace{-4mm}
\end{itemize}



A continuación, pongo el template ejemplo:

\documentclass[twoside,a4paper,openright,10pt]{report}
\usepackage[USenglish]{babel}
\usepackage[latin1]{inputenc}
\usepackage{colortbl}
\usepackage{enumitem}

\setlength{\textwidth}{190mm}
\setlength{\textheight}{270mm}
\setlength{\oddsidemargin}{-15mm}
\setlength{\evensidemargin}{-15mm}
\setlength{\topmargin}{-30mm}

\pagestyle{empty}

\begin{document}

\begin{table}[ht]
\centering
\begin{tabular}{p{40mm} p{140mm}}

\multicolumn{2}{l}{\textbf{nombre APELLIDOS}, Spanish Nationality (Driving license)}\\
\multicolumn{2}{l}{10 Brantim road, 67820, New York, USA}\\
\multicolumn{2}{l}{+01 555 555 555}\\
\multicolumn{2}{l}{\texttt{xxx@university.com}}\\ \\
\multicolumn{2}{c}{\textbf{\textit{\large Industrial computing engineer. I want to develop software for industrial applications.}}}\\
\multicolumn{2}{c}{\textbf{\textit{\large My aim is to be involved in all stages of the workflow from specification to coding.}}}\\ \\

\multicolumn{2}{c}{\cellcolor{black} \textcolor{white}{Education}}\\ \\

\textbf{1998-2004} & Graduate School of Software Engineering, XXX University, USA.\\
 & Master degree in \textbf{Software Engineering}: specialized in \textbf{Embedded Systems}.\\
\\

\multicolumn{2}{c}{\cellcolor{black} \textcolor{white}{Work Experience}}\\ \\
\textbf{Nov. 2010-Present} & Engineer at \textbf{XX} (Software Company), New York, \textbf{USA}. Development of advanced control software:\\
& \vspace{-2mm} \begin{itemize}[noitemsep,nolistsep]
\item Implementation new features per request from control group.
\item Testing on bench.
\item Evaluation of upgrade to the new software version: in progress.
\vspace{-4mm}
\end{itemize}\\

\textbf{Nov. 2009-Oct. 2010} & Engineer at \textbf{XX} (Software Company), New York, \textbf{USA}. Development of advanced control software:\\
& \vspace{-2mm} \begin{itemize}[noitemsep,nolistsep]
\item Implementation new features per request from control group.
\item Testing on bench.
\item Evaluation of upgrade to the new software version: in progress.
\vspace{-4mm}
\end{itemize}\\

\textbf{Oct. 2004-Oct. 2009} & Engineer at \textbf{ZZZ} New York, \textbf{USA}.\\

\\
\multicolumn{2}{c}{\cellcolor{black} \textcolor{white}{University Experience}}\\ \\

\textbf{Jun. 2006-Jun. 2007} & Project on ZZZZ, XXX University.\\
\textbf{Jan. 2006-Jun. 2006} & Project on ZZZZ, XXX University.\\
\textbf{Sep. 2005-Jan. 2006} & Project on ZZZZ, XXX University.\\

\\
\multicolumn{2}{c}{\cellcolor{black} \textcolor{white}{Skills}}\\ \\

\textbf{Programming} & Languages: C, C++, C\#, Java, Python.\\
& Software: Linux, Eclipse.\\

\textbf{Programming} & Languages: C, C++, C\#, Java, Python.\\
& Software: Linux, Eclipse.\\

\textbf{Programming} & Languages: C, C++, C\#, Java, Python.\\
& Software: Linux, Eclipse.\\

\textbf{Digital Electronics} & Methodology for designing electronic systems:
\begin{itemize}[noitemsep,nolistsep]
\item Circuit design: ZZZ.
\item System design: YYY.
\item Implementation on XXX.
\end{itemize}\\
& \vspace{-7mm} Methodology for designing electronic systems:
\begin{itemize}[noitemsep,nolistsep]
\item Circuit design: ZZZ.
\item System design: YYY.
\item Implementation on XXX.
\vspace{-4mm}
\end{itemize}\\
& Methodology for designing electronic systems:
\begin{itemize}[noitemsep,nolistsep]
\item Circuit design: ZZZ.
\item System design: YYY.
\item Implementation on XXX.
\vspace{-4mm}
\end{itemize}\\

\textbf{Languages} & \textbf{Spanish:} mother tongue.\\
& \textbf{English:} fluent.\\
& \textbf{French:} fluent.\\
& Worked in an international environment.

\\
\multicolumn{2}{c}{\cellcolor{black} \textcolor{white}{Interests and Activities}}\\ \\

\textbf{Sports} & Curling, Croquet, Extreme Ironing, Hot Dog Eating.\\

\end{tabular}
\end{table}

\end{document}

15 comentarios:

HANONIMO dijo...

Hola.
Lo primero, muchas gracias por esta plantilla. A los que todavía no controlamos del todo LaTeX, nos sirve de gran ayuda.

He estado intentando colocar una fotografía en la parte derecha, al otro lado de los datos personales, pero no encuentro la forma. ¿Se te ocurriría cómo hacerlo?

un saludo

Diego

Luis dijo...

Hola Diego,
hace tiempo escribí una entrada donde decía cómo añadir una imagen en una tabla, que es lo que creo que estás intentando. (click aquí)

Hasta luego

Unknown dijo...

hola luis.
oye este formato de como hacer el curriculum mediante tabla se puede extender a dos hojas ?

saludos, excelente tu trabajo

Luis dijo...

Hola Ronaldo,
puedes usar longtable, que sirve para tablas que ocupen varias hojas. Pero en este caso, lo que yo haría, sería pegar una segunda tabla, una para cada hoja.
Hasta luego

Unknown dijo...

Comentarse que cuando lo llevo al Latex en Español no me corre, por ello pedirte si puedes generarlo para el Latex en Español, gracias de antemano, saludos

Luis dijo...

Hola Álvaro,

gracias por el comentario. Pero a mí me funciona sin problemas en español. Quizás no te funcione por [latin1]. Prueba con [utf8].

Hasta luego,

José Miguel dijo...

Hola Luis, tengo la misma duda que Diego, pude introducir la imagen a la tabla, ahora lo que ocurre es que quiero que esta aparezca en la esquina superior derecha, es decir, recorrerla a la derecha, he intentado con verbatim, no me funcionó, espero me puedas ayudar, gracias de antemano.

Luis dijo...

Hola José,
pues de entrada, yo diría que para hacer un curriculum, es mejor Word. :-D Se puede modificar mucho más fácilmente todo. De todos modos, lo que comentas, yo creo que se puede hacer editando los márgenes, con \setlength o con \vspace...
Hasta luego

Unknown dijo...

Excelente Post. Sólo me queda la duda, ¿por qué no puedo acentuar directamente?, ya cambié a:
\usepackage[latin1]{inputenc}
\usepackage[spanish, activeacute]{babel}
Aún así debo usar \'{} ...

Luis dijo...

Hola Vinicio,
yo practicamente siempre puedo acentuar sin problemas. Hay veces que en la bibliografía o usando algún paquete especial, tengo que usar \', pero no es lo normal. Si no te funciona latin1, prueba utf8.
De todos modos, los paquetes de LaTeX están escritos por distintos grupos de personas. Así que es normal que algunos paquetes no funcionen correctamente con otros paquetes. Y tampoco pueden tener en cuenta todos los idiomas.
Hasta luego

Anónimo dijo...

Buenas Vinicio,

al crear una segunda tabla para la segunda hoja del curriculum, me situa el texto en medio de la pàgina, que tengo que tocar de configuración de la hoja?
Gracias.

Luis dijo...

Hola Pol,
Se me ocurren varias cosas. Puedes usar una única tabla con longtable, o una segunda tabla con mucho espacio abajo, o quizás lo que comento en esta otra entrada te sirva:

http://minisconlatex.blogspot.com.es/2012/01/como-evitar-que-latex-distribuya-los.html

Hasta luego.

Anónimo dijo...

Interesante aporte ,gracias.

Horfran Sánchez dijo...

Gran aporte, me pregunto si se le puede colocar marcadores?, es decir al momento de compilar el pdf, que esten disponibles las secciones

Riddhi dijo...

Wow such a wonderful Blog and the contennts available in your blog are also good...and such a important and good imformation. Our Services are : Digital Marketing Company | Digital Marketing Company in Delhi | Digital Marketing Company in Noida
SEO Services Company | SEO Company in Delhi | SEO Company in Noida
PPC Services Company | PPC Company in Delhi | PPC Company in Noida