Curso de Latex | Referencias y Bibliografía

Curso de Latex | Referencias y Bibliografía

 

Latex Tutorial

 

Referencias


Las referencias son utilizadas en un documento para indicar objetos dentro del mismo o fuera de él. En el primer caso tenemos las referencias cruzadas, mientras que para el segundo caso tenemos por ejemplo referencias a bibliografía o sitios web. En esta sección veremos como trabajar con ambos tipos de referencias.

 

Referencias cruzadas

Las referencias cruzadas son simplemente etiquetas que hacen referencia a algún objeto o posición dentro del documento. El mecanismo consiste en colocar el comando label{<etiqueta>} para crear el punto al cual se va a apuntar y luego con el comando ref{<etiqueta>} se crea la referencia.

A cada referencia le debemos asignar una etiqueta, y cada una de estas debe ser única en el documento. Para ser prolijos es buena practica nombrarlas de modo que describan a que clase de elemento hacen referencia. Por ejemplo, si creamos una referencia a una tabla podemos poner label{tabla: mi tabla}, o si es una sección del documento label{sec: mi seccion}.

Para el caso de las ecuaciones, tenemos la posibilidad de usar este método, pero es más habitual emplear eqref en vez de ref para crear la referencia. Esto es dado que el formato con que se pinta la referencia es más agradable. Este comando se carga con el paquete amsmath.

\documentclass[a4paper, 11pt]{article}
\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}

\usepackage{float, graphicx, caption, color, amsmath}
\usepackage[hidelinks]{hyperref}

\begin{document}
  \section{Referencias} \label{sec:Referencias}
 
   En la figura \ref{fig:Distr_de_grado} se muestra la distribución 
   de grado de $P(k)$ en función de $k$ para el grafo obtenido en la 
   exploración y como el mismo efectivamente este sigue una ley de 
   potencias. En particular, utilizando la función 
   \href{http://www.inside-r.org/packages/cran/igraph/docs/power.law.fit}
   {\textcolor{blue}{\texttt{power.law.fit$\{$igraph$\}$}}} de \textbf{R}, 
   la cual se basa en el método de Newman, se observa que el valor de $\gamma$ 
   ronda en torno a 2.16 para grado mayor a 5. 
   \vspace{2em}
 
   \begin{figure}[H]
      \centering
      \captionsetup{justification=centering}
      \includegraphics[width=0.8\textwidth]{distr_ajuste.pdf}
      \caption{Ajuste de distribución de grado mediante 
               $P(k) \sim k^{-2.162}$, para $k_{min}=5$}
      \label{fig:Distr_de_grado}
   \end{figure}
 
  \vspace{2em}
 
  La ecuación de ajuste final viene dada por \ref{ec:Newman}.
  La ecuación de ajuste final viene dada por \eqref{ec:Newman}.
  
  \begin{equation}\label{ec:Newman}
    P(k) \sim k^{-2.162}
  \end{equation}

\end{document}

 

Hyperlinks

Si queremos que las referencias que vayamos agregando en el documento creen un enlace al objeto al cual apuntan debemos utilizar el paquete hyperref. Este añade automáticamente enlaces en todas las referencias cruzadas, es decir que si hacemos clic en la referencia, luego el documento se mueva hasta la posición del objeto apuntado.

Por defecto, este paquete genera una caja que rodea a la referencia. Para hacer que esta caja no aparezca debemos indicar al cargar el paquete la opción hidelinks.

\usepackage[hidelinks]{hyperref}

El paquete hyperref también permite crear enlaces a paginas de web. Si queremos que aparezca la dirección web usamos el comando url{<URL>}, y si queremos poner un texto alternativo usamos href{<URL>}{<texto_alternativo>}.

\url{http://http://www.texstudio.org/}
\href{http://http://www.texstudio.org/}{TeXstudio}

Como lo normal es que los enlaces a los sitios de web están resaltados, por ejemplo pintados en azul, podemos editar el color de la palabra usando el paquete color.

% Preámbulo
\usepackage{color}
...

% Cuerpo
\textcolor{blue}{\url{http://www.texstudio.org/}}
\href{http://www.texstudio.org/}{\textcolor{blue}{TeXstudio}}

 

Notas al pie de página

Luego tenemos las notas al pie de página. Estas se hacen directamente con el comando footnote.

En particular, utilizando la función \texttt{power.law.fit$\{$igraph$\}$} 
\footnote{http://www.inside-r.org/packages/cran/igraph/docs/power.law.fit}
de \textbf{R}...

Por defecto, las referencias se hacen con número arábigos. Si queremos utilizar otro estilo de numeración (o simbolos) tenemos que indicarlo en el preámbulo con:

\renewcommand{\thefootnote}{\<simbolos>{footnote}} % numeración por símbolos

Donde <simbolos> lo debemos reemplazar por:

  • fnsymbol: para utilizar símbolos
  • roman: i, ii, iii…
  • Roman: I, II, III…
  • alph: a, b, c…
  • Alph: A, B, C…
  • arabic: 1, 2, 3… (la que hay por defecto)

 

Por defecto, las notas que agreguemos se incluyen al pie de página. Si quisiéramos agrupar estas notas de modo que aparezcan en una sección al final del documento (o donde quisiésemos) debemos usar el paquete endnotes. Con este simplemente usamos el comando endnote en vez de footnote, y luego colocamos el comando theendnotes en la posición donde queremos que aparezcan.

Luego, si queremos modificar el nombre de la sección que se crea debemos colocar en el preámbulo el comando:

\renewcommand{\notesname}{<Nombre>}

Igual que con el caso de footnote, podemos cambiar los simbolos utilizados poniendo en el preámbulo el comando:

\renewcommand{\theendnote}{\<simbolos>{endnote}}

Finalmente, una buena practica en caso de colocar las notas fuera de la página donde hacen referencia es crear un enlace a estas. Para esto debemos utilizar el paquete hyperendnote junto al paquete hyperref con la opción hyperfootnotes=false. Con esta última hacemos que los enlaces creados solo sean generados para las notas endnote.

\usepackage{endnotes}
\usepackage[hyperfootnotes=false]{hyperref}
\usepackage{hyperendnote}

 

Bibliografía


Ahora comencemos a ver como incluir una sección bibliográfica. Para esto existen dos formas comúnmente utilizadas. La primera es mediante el entorno thebibliography, y la segunda es mediante BIBTEX. La elección de una u otra depende generalmente de la cantidad de citas bibliográficas que contendrá el documento, siendo la segunda opción la recomendada cuando las citas son muchas.

 

thebibliography

En el primer caso, la biografía deberá editarse directamente en el documento dentro de un entorno thebibliography. Este debe colocarse en el lugar donde se desea que aparezca la bibliografía. Luego, cada entrada bibliográfica se hará mediante la instrucción bibitem. Para incluir las citas se utiliza cite{<etiqueta>} con la etiqueta correspondiere.

\section{Introducción}
 
Basado en estudio recientes \cite{Mauricio2016} se puede comprobar que... y 
complementando este hecho por lo desarrollado previamente \cite{Luckie2010} 
podemos afirmar que...
 
\begin{thebibliography}{0}
  \bibitem{Mauricio2016} Mauricio. Algun trabajo, 2016.
  \bibitem{Luckie2010} Matthew Luckie. CScamper: a scalable, extensible packet 
                              prober for active measurement of the internet, 2010.
\end{thebibliography}

 

Como vemos en el ejemplo, la sintaxis para crear cada entrada en la siguiente:

\bibitem{<etiqueta>} <Información Bibliográfica>

Luego, las distintas referencias se ordenan siguiendo el orden en que se añadió cada bibitem.

Si queremos que las referencias aparezcan con texto, debemos agregar este entre llaves en cada bibitem. Hecho esto, para ajustar la alineación correctamente debemos poner al iniciar el entorno thebibliography la cantidad de caracteres que usaremos. Podemos usar X para letras y 0 para números. Vemos una ejemplo.

\section{Introducción}
Basado en estudio recientes \cite{Mauricio2016} se puede comprobar que... y 
complementando este hecho por lo desarrollado previamente \cite{Luckie2010} 
podemos afirmar que...
 
\begin{thebibliography}{XXX0000}
  \bibitem[MAU2016]{Mauricio2016} Mauricio. Algun trabajo, 2016.
  \bibitem[LUC2010]{Luckie2010} Matthew Luckie. CScamper: a scalable, extensible packet 
                                prober for active measurement of the internet, 2010.
\end{thebibliography}


 

Un punto importante es que, al igual que cuando creamos un índice, es necesario compilar al menos dos veces el documento para obtener correctamente el documento pdf final. Esto es debido a que durante la primera compilación se resuelven las referencias, pero no es hasta la segunda compilación cuando aparece el resultado correctamente.

Para finalizar vamos a ver cómo modificar a nuestra voluntad el título de la sección de bibliografía. El titulo que viene por defecto depende de la plantilla que utilicemos, y en el caso de la plantilla article se denomina «Referencias», mientras que en book o report es «Bibliografía». Entonces, para renombrar la sección debemos agregar en el cuerpo del documento (ojo, no en el preámbulo) el siguiente comando:

% Para article: \renewcommand{\refname}{<nuevo título>}
% Para book o report: \renewcommand{\bibname}{<nuevo título>}
 
\renewcommand{\refname}{Bibliografía}

 

BIBTEX

El otro método para incluir una bibliográfica es mediante BIBTEX. Esta es una herramienta especialmente diseñada para la generación de entradas bibliográficas. En general se la utiliza cuando la cantidad de citas es extensa. Además, presenta la ventaja de que las citas bibliográficas creadas se pueden reutilizar en varios documentos.

Lo primero que debemos hacer es crear una biblioteca virtual, esto es, un archivo con extensión .bib en el que colocar las entradas bibliográfica que luego serán citadas en el documento. En el siguiente ejemplo creo el archivo referencias.bib y agregar tres entradas dentro de este (como crear entradas lo vemos más adelante):

@inbook{Tanembaum1,
 chapter = "1.5.1",
 title = "Internet",
 author = "A. Tanembaum",
 booktitle = "Redes de computadoras, 4ta Edicion",
 publisher = "Pearson Educacion",
 pages = "50-59",
 year = 2003
 }

@ARTICLE{Augustin07,
 author = {Brice Augustin and Xavier Cuvellier and Benjamin Orgogozo and Fabien Viger 
           and Timur Friedman and Matthieu Latapy and Cl{\'e}mence Magnien and Renata Teixeira},
 title = {Avoiding Traceroute Anomalies with Paris Traceroute},
 booktitle = {Proceedings of the {6th ACM SIGCOMM} Conference on Internet Measurement},
 series = {IMC '06},
 year = {2006},
 location = {Rio de Janeriro, Brazil},
 pages = {153--158},
 numpages = {6},
 url = {http://doi.acm.org/10.1145/1177080.1177100},
 acmid = {1177100},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {load balancing, traceroute}
 }

@ARTICLE{MPLS_paper,
 author = {Fernando Davila Revelo and Mauricio Anderson Ricci and Benoit Donnet and Jos\'e 
           Ignacio Alvarez-Hamelin},
 title = {{Unveiling the MPLS Structure on Internet Topology}},
 journal = {8th International Workshop on Traffic Monitoring, Analysis (TMA)},
 Month = {Apr},
 year = {2016},
 url = {http://orbi.ulg.ac.be/bitstream/2268/194694/1/paper.pdf}
 }

 

Después de crear este archivo debemos cargar alguno de los diversos paquetes que utilizan BIBTEX para gestionar la bibliografía del documento. Yo en particular utilizo el paquete biblatex (con la opción backend=bibtex). Cargado este paquete, debemos indicar la ubicación del archivo .bib con el comando addbibresource:

% Preámbulo
\usepackage[backend=bibtex]{biblatex}
\addbibresource{referencias.bib}

Luego, en el documentos, simplemente tenemos que agregar cite{<etiqueta>} para agregar cada cita, en la cual la etiqueta con que hacemos referencia a la entrada bibliográfica es la palabra con que comienza la entrada en el archivo .bib:

@<tipo_de_entrada>{<etiqueta>,
  <atributo> = <valor_atributo>
  ...
 }

Entonces:

% preámbulo
\usepackage[maxbibnames=99, sorting=none, backend=bibtex]{biblatex}
\addbibresource{referencias.bib}
...

% Cuerpo
\section{Introducción}
El primer articulo \cite{Augustin07}, luego tenemos un capitulo 
de un libro \cite{Tanembaum1}, y finalmente otro articulo \cite{MPLS_paper}.

\printbibliography

latex_bib_4

 

En el ejemplo vemos que al cargar el paquete biblatex hemos indicado dos opciones adicionales. La primera (maxbibnames=99) es para que en las referencias aparezcan todos los autores de cada entrada, dado que por defecto solo se mostraría el nombre del primer autor junto a «y colaboradores». La segunda opción (sorting=none) es para hacer que las citas se numeren en el orden que aparecen en el documento. De otro modo se irían numerando según el orden que en aparecen en el archivo .bib.

Más allá de estas opciones que hemos visto, el paquete biblatex cuanta con montones de otras opciones. Ver cada una de estas no es posible (ni vale la pena). Como siempre, lo que debemos saber es como buscar las soluciones a nuestros problemas en la web y en la documentación de cada paquete que utilicemos. Con lo que hemos visto hasta acá nos alcanza para comenzar.

 

Archivo .bib

Volviendo al archivo .bib, este una base de datos de entradas bibliográficas, en la cual las referencias deben ir en un determinado formato. Cada entrada consiste de tres partes:

  1. el tipo de entrada;
  2. una etiqueta con que ha de citarse;
  3. los campos, con la información de la entrada.

Según el tipo de entrada, tendremos campos obligatorios y otros opcionales. Además, no todas las entradas admiten todos los campos. En caso de que un tipo de entrada no admita cierto tipo de campo, este será ignorado.

A continuación les dejo todos los tipos de campos existentes, y luego los tipos de entrada con los campos que admite cada una.

Campos

  • address: la dirección de la editorial.
  • author: nombre(s) del (de los) autor(es).
  • booktitle: título del libro.
  • chapter: número de capítulo.
  • edition: edición del libro.
  • editor: nombre(s) del (de los) editor(es).
  • howpublished: forma en que fue publicada la obra.
  • institution: institución responsable de un informe técnico.
  • journal: nombre del periódico o revista.
  • key: empleado para la alfabetización, referencias cruzadas y para crear una clave cuando la información del autor no está disponible.
  • month: mes de publicación.
  • note: cualquier información adicional que pueda ayudar al lector.
  • number: número del periódico, revista, informe técnico o trabajo en una serie.
  • organization: organización responsable de una conferencia o publicación de un manual.
  • pages: números de páginas.
  • publisher: nombre de la editorial.
  • school: nombre de la universidad donde fue escrita una tesis.
  • series: nombre de una serie o conjunto de libros.
  • title: título del trabajo.
  • type: tipo de un informe técnico.
  • volume: volumen del periódico o revista, o de algún libro que conste de volúmenes.
  • year: año de publicación.

 

Algunas consideraciones importantes a tener en cuenta son:

  1. En caso de poner en algún campo palabras que no deben ser modificadas, estás deben ser encerradas entre llaves.
  2. En el campo author, para separar a los autores debemos utilizar and, independientemente de la cantidad que sean.
  3. Las tilden deben ser puestas en forma «manual», es decir, mediante \’, de otro modo se genera error al compilar.

Ejemplo:

 author = {Brice Augustin and Xavier Cuvellier and Benjamin Orgogozo and Fabien Viger 
 and Timur Friedman and Matthieu Latapy and Cl{\'e}mence Magnien and Renata Teixeira},
 title = {Avoiding Traceroute Anomalies with Paris Traceroute},
 booktitle = {Proceedings of the {6th ACM SIGCOMM} Conference on Internet Measurement}

 

Entradas

  • ARTICLE: artículo de un periódico o una revista.
    • requeridos: author, title, journal, year.
    • opcionales: volume, number, pages, month, note.
  • BOOK: libro con una editorial explícita.
    • requeridos: author o editor, title, publisher, year.
    • opcionales: volume o number, series, address, edition, month, note.
  • BOOKLET: trabajo impreso y distribuido, pero que no tiene una editorial o institución responsable.
    • requeridos: title.
    • opcionales: author, howpublished, address, month, year, note.
  • INBOOK: parte de un libro, como un capítulo, una sección, un rango de páginas, etc.
    • requeridos: author o editor, title, chapter o pages, publisher, year.
    • opcionales: volume o number, series, type, address, edition, month, note.
  • INCOLLECTION: parte de un libro con título propio.
    • requeridos: author, title, booktitle, publisher, year.
    • opcionales: editor, volume o number, series, type, chapter, pages, address, edition, month, note.
  • INPROCEEDINGS: artículo de las memorias de un congreso.
    • requeridos: author, title, booktitle, year.
    • opcionales: editor, volume o number, series, pages, address, month, organization, publisher, note.
  • MANUAL: documentación técnica.
    • requeridos: title.
    • opcionales: author, organization, address, edition, month, year, note.
  • MASTERSTHESIS: tesis de maestría.
    • requeridos: author, title, school, year.
    • opcionales: type, address, month, note.
  • MISC: misceláneo (o cuando ninguna otra entrada coincide).
    • requeridos: Ninguno.
    • opcionales: author, title, howpublished, month, year, note.
  • PHDTHESIS: tesis de doctorado.
    • requeridos: author, title, school, year.
    • opcionales: type, address, month, note.
  • PROCEEDINGS: memorias de un congreso.
    • requeridos: title, year.
    • opcionales: editor, volume o number, series, address, month, organization, publisher, note.
  • TECHREPORT: informe publicado por una institución.
    • requeridos: author, title, institution, year.
    • opcionales: type, number, address, month, note.
  • UNPUBLISHED: documento (con un autor y un título) no publicado.
    • requeridos: author, title, note.
    • opcionales: month, year

 

Video


 

Comentarios

Curso de Latex | Ecuaciones y Código

Curso de Latex | Ecuaciones y Código

 

Latex Tutorial

 

Ecuaciones


Trabajar con ecuaciones en Latex es simples. Solo hay que conocer unos pocos detalles, y el resto es saber googlear los simbolos que deseamos utilizar.

Para trabajar con ecuaciones lo primero que debemos hacer es cargar los paquetes ams: amssymb, amsmath, amsbsy. Estos paquetes proveen de los simbolos matemáticos que no se incluyen por defecto en Latex. Luego, para insertar una ecuación tenemos que crear lo que se llama un entorno en modo matemático, para lo cual hay dos caminos.

El primero es creando propiamente un entorno matematico. Hay varios tipos, dentro de los cuales los más usuales son equation para insertar una única ecuación, un entorno align para múltiples ecuaciones consecutivas alineadas, o gather si no queremos que se alineen.

El segundo camino es colocando las ecuación entre signos de pesos simple ($), en el caso de una ecuación en linea con el texto, o con signo doble de pesos ($$) si queremos que esta vaya a para a una nueva linea.

% Preambulo
\usepackage{amssymb, amsmath, amsbsy}
...

% Cuerpo
\begin{equation}
y(x) = x^2 + 5
\end{equation}
 
\begin{gather}
y(x) = x^2 + 5 \\
z(x) = y^{2x} + x 
\end{gather}

Mediante la ley de Ohm, $ V = I \cdot R $, podemos calcular el valor del resistor en el circuito...
 
Mediante la ley de Ohm, $$ V = I \cdot R $$ podemos calcular el valor del resistor en el circuito...

 

latex_ecuaciones_1

 

Ahora veamos algunos puntos antes de pasar a dar ejemplos:

1. LaTeX, por defecto, pone las ecuaciones en cursiva. Si queremos evitarlo, debemos usar el comando mathrm.

$$ E = m \cdot c^2 $$
$$ \mathrm{E = m \cdot c^2} $$

2. Si queremos añadir texto, lo podemos hacer mediante el comando textup, teniendo en cuenta que los espacios en blanco se escriben con \.

\begin{equation}
  E = m c^2 \ \ \textup{equivalencia entre la masa y la energía dada 
                        por la expresión de la teoría de la relatividad}
\end{equation}

3. Si queremos que las ecuaciones no se numeren al utilizar los entornos equation o gather, debemos colocar un * al crear los entorno:

\begin{equation*}
  E = m c^2
\end{equation*}

4. Para insertar letras griegas simplemente escribimos el nombre de estas como si fuésemos a insertar un comando.

% Ejemplos de letras griegas

\begin{gather}
  \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \\ 
  \mu \nu \xi \pi \rho \sigma \tau \upsilon \phi \chi \psi \omega \\
  \Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega
\end{gather}

5. Para colocar super-indices usamos el símbolo ^ y, si en el super-indice va mas de un símbolo, a todos estos los encerramos entre llaves. En forma similar, para los sub-indices usamos el guion bajo:

\begin{gather}
  e^{\pi i} - 1 = 0     \ \ \textup{Ecuacion de Euler}
  x_i = x_{i-1} + 1     \ \ \textup{Formula inventada}
  x_i = x_{i-1}^{2} + 1 \ \ \textup{Formula inventada 2}
\end{gather}

 

latex_ecuaciones_2

 

Como comentamos, acordarse de todo los simbolos que podemos utilizar en Latex no tiene sentido. Lo más practico es conocer los más habituales, y el resto saber buscarlos en la web al momento de necesitarlos. No obstante, en caso de usar TeXstudio, podemos mirar en la solapa Matemáticas varios de los simbolos y entornos disponibles:

 

latex_matematica

 

Antes de pasar a la siguiente sección, les dejo las ecuaciones de Maxwell en Latex.

\begin{align*}
  \text{\textbf{Ecuaciones de Maxwell: forma diferencial}}\\
  \vec{\nabla} \cdot \vec{E} = \dfrac{\rho}{\epsilon_0}& \qquad \textup{Ley de Gauss}\\
  \vec{\nabla} \cdot \vec{B} = 0& \qquad \textup{Ley de Gauss para el campo magnético}\\
  \vec{\nabla}\times\vec{E}=-\dfrac{\partial \vec{B}}{\partial t}& \qquad \textup{Ley de Faraday}\\
  c^2\vec{\nabla}\times\vec{B} =\dfrac{\vec{J}}{\epsilon_0}+\dfrac {\partial \vec{E}}{\partial t}& \qquad \textup{1ra Ley de Ampere}\\
  \vec{\nabla}\times \vec{B}=\mu_0\vec{J}+\mu_0 \epsilon_0 \dfrac{\partial \vec{E}}{\partial t}& \qquad \textup{2da Ley de Ampere}\\
  \\
  \text{\textbf{Ecuaciones de Maxwell: forma integral}}\\
  \oint_S \vec{E} \cdot d\vec{s} = \dfrac{q}{\epsilon_0}& \qquad \textup{Ley de Gauss}\\
  \oint_S \vec{B} \cdot d\vec{s} = 0& \qquad \textup{Ley de Gauss para el campo magnético}\\
  \oint_C \vec{E} \cdot d\vec{l} = -\dfrac{d}{dt} \int_S \vec{B} \cdot \vec{s}& \qquad \textup{Ley de Faraday}\\
  c^2 \oint_C \vec{B} \cdot d\vec{l} = \int_S \dfrac{\vec{J} \cdot d\vec{s}}{\epsilon_0} + \dfrac{d}{dt} \int_S \vec{E} \cdot d\vec{s}& \qquad \textup{1ra Ley de Ampere}\\
  \oint_C \vec{B} \cdot d\vec{l} = \mu_0 \int_S \vec{J} \cdot d\vec{s} + \mu_0 \epsilon_0 \dfrac{d}{dt} \int_S \vec{E} \cdot d\vec{s}& \qquad \textup{2da Ley de Ampere}
\end{align*}

 

latex_ecuaciones_3

 

Una muy buena guía donde se puede profundizar en la creación de ecuaciones con Latex es esta: http://metodos.fam.cie.uva.es/~latex/apuntes/apuntes3.pdf

 

Código


Tanto para escribir fragmentos de código como pseudocódigo, en Latex tenemos varias posibilidades. A continuación veremos las más comunes.

 

Pseudocódigo

Para insertar pseudocódigo se suele utilizar el paquete algorithm junto al paquete algpseudocode. Una vez cargados, el pseudocódigo se debe insertar dentro de un entorno algorithmic, que a su vez debe ir dentro de un entorno algorithm.

% Preambulo
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
...

% Cuerpo
\begin{algorithm}
  \caption{Calculo de \textit{first hop}}
  \begin{algorithmic}[1]
 
    % ENTRADA / SALIDA
    \Require{\textit{target}: lista de IP a las cuales se harán \textit{traceroutes}} 
    \Ensure{$first\_hop$: vector con el TTL inicial a cada IP del \textit{target}}
 
    \State $IP_{found} = \phi$
    \State $first\_hop = \phi$
 
    \For{$i;\ i++;\ |target|$}
      \State{traceroute($IP = IP[i],\ TTL_{initial} = 1$)}
    \EndFor
 
    \For{$i;\ i++;\ |target|$}
      \State{trace = read\_traceroute($IP[i]$)}
      \State{$TTL_{initial} = 1$}
      \For{hop \textbf{in} trace}
        \If{hop \textbf{in} $IP_{found}$}
          \State $TTL_{initial} ++$
        \Else
           \State $IP_{found}$ \textbf{append} hop
           \State $first\_hop[i] = TTL_{initial}$
           \State \textbf{break}
        \EndIf
      \EndFor
    \EndFor
    \State{\textbf{return} $first\_hop$}
  \end{algorithmic}
\end{algorithm}

 

latex_pseudocodigo_1

 

Dentro de entorno algorithmic, para definir las lineas de pseudocódigo utilizamos los siguiente comandos:

 \STATE <text>
 \IF{<condition>} \STATE {<text>} \ELSE \STATE{<text>} \ENDIF
 \IF{<condition>} \STATE {<text>} \ELSIF{<condition>} \STATE{<text>} \ENDIF
 \FOR{<condition>} \STATE {<text>} \ENDFOR
 \FOR{<condition> \TO <condition> } \STATE {<text>} \ENDFOR
 \FORALL{<condition>} \STATE{<text>} \ENDFOR
 \WHILE{<condition>} \STATE{<text>} \ENDWHILE
 \REPEAT \STATE{<text>} \UNTIL{<condition>}
 \LOOP \STATE{<text>} \ENDLOOP
 \REQUIRE <text>
 \ENSURE <text>
 \RETURN <text>
 \PRINT <text>
 \COMMENT{<text>}
 \AND, \OR, \XOR, \NOT, \TO, \TRUE, \FALSE

 

Código

Para insertar código en nuestro documento el paquete más popular es listings, el cual nos provee del entorno lstlisting. Este nos provee de la opción de elegir el lenguaje de programación del código. De este modo logramos que se resalte el código acorde como lo veríamos por ejemplo en un IDE.

% Preambulo
\usepackage{listings}
...

% Cuerpo
\begin{lstlisting}[language=Python]

## Programa que imprima los numeros impares 
## desde el 100 hasta la unidad y calcule su suma

n = 100

def mi_funcion(n, acum):
 acum = 0 
 while n >= 1:
 if n%2 != 0:
 print n
 acum += n
 n -= 1
 print 'y su suma es: ' + str(acum)

mi_funcion(n)

\end{lstlisting}

 

latex_codigo_1

 

Las opciones disponibles para configurar el entorno son:

  • language   = ...       define el lenguaje de programación
  • breaklines = true      para que si una línea es muy larga, la pase automáticamente al siguiente renglón
  • basicstyle = ...       define el tamaño del texto
  • frame      = false     single encierra el código en una caja

 

 

Comentarios

Curso de Latex |  Listas, Tablas y Figuras

Curso de Latex | Listas, Tablas y Figuras

Latex Tutorial

 

Listas en Latex


Las listas se dividen en dos grupos: no enumeradas y enumeradas. Como sus nombres lo indican, las primeras consisten en ítems que a su izquierda tiene un símbolo no numérico, y son creadas con el entorno itemize. Las segundas siguen una enumeración, y son creadas dentro del entorno enumerate. Para utilizar estas últimas necesitamos cargar el paquete homónimo, enumerate.

 

Listas no enumeradas

Como dijimos, las listas no enumeradas se crean dentro del entorno itemize. Dentro de este entorno, cada elemento de la lista se especifica con el comando item:

\begin{itemize}
  \item America del sur
  \item America del Norte
  \item Europa
  \item Asía
\end{itemize}

A su vez, se pueden anidar listas creando un nuevo entorno itemize:

\begin{itemize}
  \item America del sur
  \begin{itemize}
    \item Argentina
    \begin{itemize}
      \item Buenos Aires
      \item Córdoba
    \end{itemize}
    \item Chile
    \item Perú
  \end{itemize}
  \item America del Norte
  \item Europa
  \begin{itemize}
    \item Italia
    \item España
  \end{itemize}
  \item Asía
\end{itemize}

 

latex_listas_1

 

Como se observa, Latex utiliza simbolos por defecto para cada nivel de anidamiento de la lista. Para modificar estos simbolos tenemos dos alternativas. Por un lado, podemos indicar en cada ítem el símbolo de la siguiente forma: item[$<simbolo>$]. En cambio, si buscamos que se modifiquen todos los simbolos asociados a un nivel de anidamiento debemos agregar en el preámbulo:

\renewcommand{\labelitemi}{$A$}
\renewcommand{\labelitemii}{$B$}
\renewcommand{\labelitemiii}{$C$}
\renewcommand{\labelitemvi}{$D$}
...

Donde labelitemX hace referencia al nivel de anidamiento al que le modificamos el símbolo.

 

latex_listas_3

latex_listas_2

 

Siguiendo, si queremos agregar sangría a las listas debemos utilizar el paquete enumitem. Con este tenemos dos posibilidades. Si queremos modificar la sangría de una única lista utilizamos la opción leftmargin al iniciar el entorno itemize. En cambio, si queremos modificar la sangría de todas las listas del documento, debemos usar el comando setlist en el preámbulo:

% Caso 1: Modificar una única lista
\usepackage{enumitem} % En el preámbulo
...
\begin{itemize}[leftmargin=<distancia>] % En el cuerpo
    ...
\end{itemize}


% Caso 2: Modificar todas las listas lista:
\usepackage{enumitem} % En el preámbulo
\setlist{leftmargin=5.5mm}

 

Listas enumeradas

Pasando a las listas enumeradas, estas se crean de manera similar, pero dentro del entorno enumerate:

% Preámbulo
\usepackage{enumerate}
...
% Cuerpo
\begin{enumerate}
  \item Madera
  \begin{enumerate} 
    \item Roble
    \item Pino
  \end{enumerate} 
  \item Plastico
  \item Metal
  \begin{enumerate} 
    \item Hierro
    \item Aluminio
    \item Zinc
  \end{enumerate} 
  \item Ceramica
\end{enumerate}

 

latex_listas_4

 

A su vez, el formato de la numeración se puede definir indicándolo al iniciar el entorno enumerate:

\begin{enumerate}[{M}1.]
  \item Madera
  \begin{enumerate}[{m}1.] 
    \item Roble
    \item Pino
  \end{enumerate} 
  \item Plastico
  \item Metal
  \begin{enumerate}[{m}1.] 
    \item Hierro
    \item Aluminio
    \item Zinc
  \end{enumerate} 
  \item Ceramica
\end{enumerate}

 

latex_listas_5

 

 

Tablas en Latex


Las tablas se crean utilizando el entorno table. Pongamos un ejemplo y luego veamos por partes los detalles.

% Preámbulo
\usepackage[spanish, es-tabla]{babel}
...

% Cuerpo
\begin{document}
  \section{Tablas}
    \begin{table}[h]
    \begin{center}
    \begin{tabular}{|l|l|c|}
      hline
      País & Ciudad & Población \\
      \hline \hline
      Argentina & Buenos Aires & 3.0M\\ \hline
      Chile     & Santiago     & 5.1M\\ \hline
      Perú      & Lima         & 8.4M\\ \hline
    \end{tabular}
    \caption{Poblaciones de ciudades europeas}
    \end{center}
  \end{table}
\end{document}

 

 

Lo primero que observamos es que hemos agregado el argumento es-tabla al cargar el paquete babel. Esto tiene la finalidad de hacer que en la leyenda de la tabla aparezca «Tabla N: …». De otro modo, en vez de la palabra Tabla tendríamos la palabra Cuadro.

Siguiendo, ya en el cuerpo del documento, definimos un entorno table y forzamos mediante la opción [h] a que aparezca en la posición en que la escribimos. Dentro del entorno table, creamos un entorno center con el fin de que la tabla quede centrada horizontalmente en la página y creamos el entorno tabular. Este último es el que propiamente define la tabla que se pintara en el documento.

En el entorno tabular tenemos que ir pintando la tabla linea a linea. Dentro de una fila, para separar los elementos de cada columnas utilizamos el símbolo &. Luego, para separa las filas utilizamos el salto de linea (\\). De este modo vamos definiendo los elementos en cada celda de la tabla, pero aun sin dibujar los bordes. Para esto último tenemos que realizar dos acciones:

  • Los bordes horizontales se dibujan con el comando hline. Cada vez que colocamos este comando se dibuja una linea horizontal en la fila en que estemos parados. Si por ejemplo ponemos dos se hline dibujarán dos lineas horizontales.
  • Los bodes verticales se indican a junto con la alineación del contenido de cada columna al iniciar el entorno tabular con { | l | l | c |}. En este caso, cada barra vertical indica que se dibuje una barra vertical en la tabla. Entre cada barra vertical definimos la alineación del contenido de la columna con l (left), c (center) o r (right).

Por último, mediante caption{<Leyenda>} introducimos la leyenda de la tabla.

 

Figuras en Latex


Finalmente, veamos como trabajar con figuras en nuestro documento. Latex por defecto no es capaz de esto, por lo cual debemos utilizar el paquete graphicx para esta tarea.

Las figuras se agregan utilizando el entorno figure. Una vez dentro de este entorno, para incluir la imagen debemos utilizar el comando includegraphics. Si queremos que la imagen quede centrada horizontalmente en la página debemos colocar dentro del entorno figure el comando centering. Además, podemos ajustar el ancho de la imagen utilizando la opción width de includegraphics. En el siguiente ejemplo hacemos que el ancho de la imagen sea de un 70% del ancho del texto.

% Preámbulo
\usepackage{graphicx}
...

% Cuerpo
\begin{figure}[h]
  \centering
  \includegraphics[width=0.7\textwidth]{portada_latex.png}
  \caption{Imagen de portada}
\end{figure}

 

latex_figuras_1

 

Otras opciones útiles que de includegraphics son:

  • width: especifica el alta de la figura. Mantiene la relación de aspecto si keepaspectratio=true.
  • height: especifica el ancho de la figura.Mantiene la relación de aspecto si keepaspectratio=true.
  • keepaspectratio (true/false): asegura que se mantenga la relación de aspecto al utilizar las opciones width y height. Por defecto, true.
  • scale: escala la imagen.
  • angle: rota la imagen.
  • resolution: especifica la resolución de la imagen en dpi.

Por defecto, Latex buscará las imágenes en la carpeta donde almacenamos el proyecto. En caso de que deseemos colocar las imágenes en una carpeta separada, lo cual es muy recomendable en documentos extensos, debemos utilizar el comando graphicspath para indicar ubicaciones adicionales a Latex donde ir a buscar las imágenes. En el siguiente ejemplo tengo una carpeta llamada «imágenes» dentro de la carpeta del proyecto donde guardo una imagen que inserto:

% Preámbulo 
\usepackage{graphicx}
\graphicspath{ {./imagenes/} }
...

% Cuerpo
\begin{figure}[h]
  \centering
  \includegraphics[width=0.7\textwidth]{coord_monitores.png}
  \caption{Ubicación en mapa}
\end{figure}

Por último, en caso buscar colocar varias imágenes dentro de una figura debemos utilizar el paquete subcaption. Este nos permite colocar entornos subfigure dentro de un entorno figure. Al iniciar cada entorno subfigure se debe especificar el tamaño del bloque donde se insertará la imagen, y luego dentro de este se utiliza includegraphics para insertar la imagen. Se debe tener en cuenta que al insertar cada imagen dentro de un entorno subfigure es conveniente hacer que esta tenga el ancho del bloque con la opción [width=\linewidth]. Esto nos permite manejar el tamaño de la figura al iniciar un entorno subfigure.

Por otra parte, la alineación de las figuras es un punto que puede traer dolores de cabeza al principio. Para resumir, a medida que vamos agregando entornos subfigure, estos se van insertando horizontalmente. Cuando queramos que los nuevos entornos se creen en una siguiente fila debemos dejar un espacio en blanco entre el fin de un entorno y el inicio del próximo. Luego, para hacer que los entornos en una fila se distribuyan uniformemente a lo largo del espacio horizontal de la página debemos colocar al cerrar cada entorno el comando hfill.

% Preámbulo
\usepackage{graphicx}
\usepackage{subcaption}
...

% Cuerpo
\begin{figure}[h]
  \centering
  \begin{subfigure}{.45\textwidth}
    \centering
    \includegraphics[width=\linewidth]{mapa_trace_2.png}
    \caption{Comienzo del trayecto}
    \end{subfigure}\hfill
  \begin{subfigure}{.45\textwidth}
    \centering
    \includegraphics[width=\linewidth]{mapa_trace_3.png}
    \caption{Fin del trayecto}
  \end{subfigure}%
 
  \begin{subfigure}{1.0\textwidth}
    \centering
    \includegraphics[width=\linewidth]{mapa_trace_1.png}
    \caption{Trayectoria completa}
    \end{subfigure}% 
  \caption{Ruta global}
\end{figure}

 

latex_figuras_2

Video


 

 

Comentarios

Curso de Latex | Estilo y Formato del Texto

Curso de Latex | Estilo y Formato del Texto

En el post anterior sobre Latex hemos visto como crear y estructurar documentos. Ahora veremos como dar formato al texto, para lo cual primero nos ocuparemos de los espaciados, y luego del formato en sí.

 

Latex Tutorial

 

Unidades de medida


Antes de comenzar a hablar sobre diseño, veamos las unidades de medida comúnmente utilizadas.

  • Pixels (px): representa tantas veces los puntos visibles que tenga la pantalla donde se visualice el objeto. Se la suele utilizar para las imágenes.
  • Pulgadas (in, Inches): es una unidad anglosajona de medición, que equivale a 25,4mm.
  • Puntos (pt): se define en base a la pulgada como 1/72 in (~0.35 mm). Es la unidad con que se define por defecto en la mayoría de los editores de texto el tamaño de las letras.
  • Centímetro (cm) / Milímetros (mm): Unidades métricas de medición.
  • eme (em): se define como el ancho de una ‘M’ mayúscula, y varia según la tipografía que se esté utilizando.
  • equis (ex): similar al anterior caso, se define como la altura de una ‘x’ minúscula.

 

Espaciado


Como dijimos en post anterior, en Latex se separa lo que es el contenido del documento del formato de este. De este modo, cada tipo de documento (article, book, report, etc) posee diferentes configuraciones en lo referente a los espaciados. En caso de que deseemos utilizar espaciados diferentes al que posee la plantilla, tenemos comandos que nos permiten darle las dimensiones que deseemos.

 

Espaciado entre palabras

El espacio entre palabras depende del tipo de letra que estemos utilizando, y no es común modificar su valor, salvo en lugares específicos que lo deseemos para resaltar.

Lo primero que pensaríamos en utilizar para aumentar el espacio entre palabras es simplemente poner entre ambas más de un carácter de espacio, pero en Latex esto no funciona. En cambio, tenemos dos formas de modificar el espacio entre palabras. La primera es mediante la función space, la cual simplemente pinta un espacio en blanco adicional. La otra alternativa es mediante la función hspace, la cual se le pasa como argumento el espacio horizontal a dejar entre las palabras. Veamos algunos ejemplos.

% Caso 1: multuples espacios Lorem ipsum dolor sit amet, consectetur adipiscing elit.

 

% Caso 2: función \space Lorem \space ipsum \space \space dolor \space \space \space sit amet, consectetur adipiscing elit.

 

% Caso 3: función hspace Lorem \hspace{5pt} ipsum \hspace{1cm} dolor \hspace{1em} sit amet, consectetur adipiscing elit.

 

latex_espaciado

 

Espaciado entre líneas (Interlineado)

Si deseamos modificar el espaciado entre lineas contamos con el paquete setspace. Este cual provee un grupo de comando que modifican la distancia entre lineas dentro de un párrafo. Dichos comando son singlespacing, onehalfspacing y doublespacing. Cada uno de estos comandos comienza a tener efecto en el documento a partir de la posición en la que se sitúan, y hasta la aparición de una nueva etiqueta. Adicionalmente, el paquete setspace provee el entorno spacing, al cual se le puede indicar el interlineado deseado.

Veamos ejemplos.

\onehalfspacing
p1 – Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce id eleifend metus. Aliquam erat volutpat. Curabitur quis lorem ornare, sagittis neque id, consectetur massa. Aliquam tempus urna vitae libero eleifend, ac eleifend velit tincidunt.

 

\doublespacing
p2 – Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce id eleifend metus. Aliquam erat volutpat. Curabitur quis lorem ornare, sagittis neque id, consectetur massa. Aliquam tempus urna vitae libero eleifend, ac eleifend velit tincidunt.

 

\singlespacing
p3 – Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce id eleifend metus. Aliquam erat volutpat. Curabitur quis lorem ornare, sagittis neque id, consectetur massa. Aliquam tempus urna vitae libero eleifend, ac eleifend velit tincidunt.

 

\begin{spacing}{2} % factior = 2
p4 – Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce id eleifend metus. Aliquam erat volutpat. Curabitur quis lorem ornare, sagittis neque id, consectetur massa. Aliquam tempus urna vitae libero eleifend, ac eleifend velit tincidunt.
\end{spacing}

 

latex_interlineado

 

Espaciado entre párrafos

Al igual que en el caso de la separación entre palabras, para aumentar la separación entre párrafos no podemos simplemente dejar más de una linea en blanco entre estos. Latex toma siempre el mismo espaciado entre los párrafos. Entonces, para aumentar la separación de todos los párrafos del documentos, penemos en el preámbulo el comando \setlength{\parskip}{<distancia>}.

latex_espaciado_parrafos1

En cambio, si solo deseamos aumentar la separación entre dos párrafos puntuales tenemos los tres maneras. La primera es mediante el comando de salto de linea \\, el cual deja un espacio adicional equivalente a un renglón. El siguiente comando es vspace, que al igual que veíamos con hspace, debemos indicar el espacio horizontal a que deseamos. Finalmente, el tercer método es mediante las etiquetas smallskip, medskip y bigskip, las cuales son autodescriptivas. Veamos ejemplos de como utilizar estos comandos.

latex_espaciado_parrafos2

 

Sangría

Para configurar la sangría que tendrán los párrafos del documento debemos colocar en el preámbulo el comando \setlegtth{\parindent}{<distancia>}. Este comando afectará a todos los párrafos del documento. Si por ejemplo queremos que nuestro documento no tenga sangría, ponemos como en distancia el valor 0px.

latex_sangria

 

 

Texto


La configuración global del texto se define ingresando las instrucciones correspondientes en el preámbulo. En cambio, para casos particulares dentro del documento, tenemos muchas opciones. Aprenderse cada una de estas requiere tiempo, y no es algo restrictivo al momento de utilizar Latex. Para poder ver todas las opciones de formato podemos abrir la pestaña Latex de la solapa de opciones.

latex_opciones_edicion

Ponerme a hacer ejemplos de cada tipo no aporta mucho. Lo ideal es que cada uno investigue por su cuenta las opciones de formato disponible. En particular, las opciones a ver serías Entornos, Estilos de tipo de letra y Tamaño de tipo de letra.

Color del texto

Latex no cuenta con la posibilidad por defecto de modificar el color del texto. Si deseamos esto, requerimos usar el paquete color. Si cuando cargamos el paquete indicamos la opción usenames, podremos elegir el color por el nombre. Adicionalmente, podemos definir nuestros propios nombre para colores vayamos a utilizar con el comando \definecolor{<name>}{<system>}{<definition>}. Veamos unos ejemplos.

\usepackage[usenames]{color}
\definecolor{GrisMauricio}{gray}{0.2}
\definecolor{ColorFavorito}{rgb}{.5,.3,.5}

\textcolor{blue}{test}
\textcolor{GrisMauricio}{test}
\textcolor{ColorFavorito}{test}
\textcolor{yellow}{test}

 

latex_colores

 

Video


 

 

Comentarios

Curso de Latex | Introducción, Instalación y Estructura del Documento

Curso de Latex | Introducción, Instalación y Estructura del Documento

Latex Tutorial

 

Qué es Latex


Latex es un sistema para la generación de documentos, así como lo es Word o el editor de texto de OpenOffice, pero se distingue de estos por tener una filosofía bien distinta. En estos últimos, en cada momento vemos en la pantalla el resultado final del trabajo, lo que se suele llamar WYSIWYG (what you see is what you get, «lo que ves es lo que obtienes»). En cambio, utilizando Latex se logra separar el contenido del documento del formato en sí. Ya veremos más claramente esta idea cuando comencemos a escribir documentos. De este modo, el usuario solo debe centrarse en el contenido, sin tener que preocuparse de los detalles del formato constantemente.

Con Latex vamos a marcar una diferencia en la calidad de presentación de nuestros documentos. Desde simples informes para materias en la facultad, hasta creación de libros, presentaciones, tesis, informes técnicos o papers. Algunos ejemplos de documentos creados en Latex los pueden ver acá:

 

Instalación


Para poder utilizar Latex vamos a necesitar 3 cosas:

1. Una distribución de LaTeX. Esta es el motor que se encarga de convertir los archivos fuente de LaTeX en documentos portables pdf. Para Windows tenemos MiKTeX, para Linux tenemos TexLive, mientras que para Mac existe MacTeX.

2. Un editor de texto. Con un simple block de notas bastaría, pero existen entornos de desarrollo que simplifican enormemente el trabajo. En particular, yo uso uno llamado TeXstudio que luego instalaremos y usaremos a lo largo del curso, aunque realmente no existe gran diferencia respecto de otros existentes como TeXmaker o TeXworks.

3. Un visor de documentos PDF.

Lo que voy a utilizar a lo largo del curso es MiKTeX y TeXstudio. Ustedes utilicen lo que se adapte a su sistema operativo y gusto personal. El resultado final, en cualquier caso, será el mismo. Entonces, nos dirigimos a la página de MiKTeX y descarga la distribución acorde al sistema operativo que usemos. Luego nos vamos a la página de TeXstudio y lo mismo. Una vez que tenemos ambos archivos, los instalamos, comenzando por MikTeX.

Finalmente, ya tenemos listo nuestro equipo para comenzar a generar documentos.

 

 

Primer Documento


Ahora que tenemos listo el entorno de trabajo, vamos a crear nuestro primer documento. Para esto, abrimos TeXstudio y le damos a archivos → nuevo. Una vez que tenemos el nuevo documento, debemos estructurarlo. Existen dos bloques fundamentales en todo documento Latex: el preámbulo y el cuerpo.

% Preámbulo
\documentclass[a4paper, 11pt]{article}

% Cuerpo
\begin{document}
    Mi primer documento en Latex!!
\end{document}

En el preámbulo, se colocan las instrucciones que le dicen a Latex que clase de documento se va a escribir y que características va a tener, así como también las instrucciones que indican los paquetes deben ser cargados. Dichos paquetes, como es de esperar, aportan nuevas funcionalidades. A lo largo del curso haremos uso de varios de ellos.

La clase de documento queda definido con la instrucción documentclass, mientras que para cargar paquetes utilizamos usepackage. Como vemos, ambas etiquetas siguen un formato similar, donde entre corchetes se colocan opciones y luego entre llaves se coloca la planilla a utilizar en el caso de documentclass o el paquete a cargar el caso de usepackage.

\documentclass[<opciones>]{<plantilla_documento>}

\usepackage[<opciones>]{<paquete>}

Luego, en el cuerpo del documento va en prácticamente todo lo que se visualizará en este una vez compilado.

Antes de compilar debemos guardar nuestro proyecto. Les recomiendo que, en la ubicación donde vayan a guardar el proyecto, le dediquen una carpeta exclusiva. Esto se debe a que, como veremos más adelante, en la misma ubicación irán varios archivos entre imágenes que agreguemos y otros que se generen en la compilación.

Entonces, una vez que tenemos esta estructura básica ya podemos compilar y ver que obtenemos. La compilación se realiza, en el caso de TeXstudio, desde Herramientas → Compilar. También se puede realizar presionando F5.

 

primer_documento_latex

 

Nuestro primer documento! Nada extraordinario, pero al menos podemos ver que tenemos nuestro equipo bien configurado.

Si vemos el contenido de la carpeta donde almacenamos el proyecto, nos encontramos con que se han generado montón de archivos, dentro de los cuales los únicos importantes en este momento son el .tex y el .pdf

latex_carpeta_proyecto

 

Antes de continuar, un par de comentarios. En Latex los comentario se introducen con el %. Lo siguiente es que, en Latex, no es necesario identar el código, aunque como en todo lenguaje, es altamente recomendable.

 

 

Estructura del documento


Paquetes esenciales

Antes de continuar, vamos a ver dos paquetes que debemos cargar en la mayoría de los documentos que realicemos.

El primero es el paquete babel. Este se encarga de definir el idioma con que se creará el documento. Debe ir inmediatamente luego de la etiqueta documentclass, de modo que los restantes paquetes carguemos conozcan el idioma con que se trabajará.

El otro paquete es inputenc. Este se encarga de cargar todos los caracteres no anglosajones que utilicemos. Por ejemplo, este paquete nos permite utilizar la ñ y las tildes. De otro modo, estos caracteres no se imprimirían al momento de compilar. Las opciones de este paquete útiles para el español son utf8 y latin1. Cuál elegir de ambos? no tengo claro. En general lo que hago es probar con cual obtengo correctamente el documento final. A lo largo del curso utilizaré latin1.

\usepackage[<idioma>]{babel}      % Idioma: spanish, english, etc
\usepackage[<opciones>]{inputenc} % Opciones: utf8 o latin1

 

Tipo de documento (documentclass)

Como mencionábamos, existen diferentes estilos que podemos darle a nuestro documento. La selección de uno u otro dependerá de qué es lo que necesitemos hacer. Por ejemplo, para escribir documentos cortos, como informes de la facultad o un paper, se suele utilizar la plantilla article. Esta permite utilizar las etiquetas section, subsection y subsubsection para estructurar el documento, generando diferentes niveles de contenidos.

% Preámbulo
\documentclass[a4paper, 11pt]{book}

\usepackage[spanish]{babel}
\usepackage[latin1]{inputenc}

% Cuerpo
\begin{document}
    \section{Introducción}
    Hola Introducción
        \subsection{Primer sub-sección}
	Hola sub-sección
	    \subsubsection{Primera sub-sub-sección}
	     Hola Mundo!!
        \subsection{Otra sub-sección}
        Hola otra vez
    \section{Otras sección}
    Hasta acá llegamos
	
\end{document}

 

latex_estructura_documento

 

Luego tenemos la plantillas book y reports que se las utiliza para realizar libros e informes técnicos respectivamente. Estas plantillas agregar las etiquetas chapter y part para estructurar el documento.

\part{Nombre de la Parte}
\chapter{Nombre del Capitulo}

Finalmente, si lo que deseamos es realizar una presentación, contamos con la plantilla beamer. Veremos como hacer presentaciones en Latex en un post futuro.

Para ver que otras plantillas existen puede pasar por acá. De momento, nos enfocaremos en la plantilla article, por ser la más comúnmente utilizada, aunque la mayoría de lo que veamos es aplicable al resto de las plantillas.

 

Configuración de la página

El tamaño de la hoja queda definido como una opción de la etiqueta documentclass. Los formatos más habituales son a4paperletter.

De igual modo, podemos seleccionar el tamaño de letra a utilizar, y si deseamos utilizar múltiples columnas.

\documentclass[a4paper, 11pt, onecolumn]{article}

Dentro de las opciones de documentclass existen muchas posibilidades para configurar el documento. Las iremos viendo a medida que avancemos en el curso. En caso de que no se indiquen opciones, las que se carguen serán las por defecto de cada plantilla.

Si queremos definir margenes distintos de los que tiene la plantilla que estemos utilizando, no existe una opción predefinida, pero sí un paquete que se encarga de esto. Dicho paquete es geometry. La forma de definir los margenes con este paquete es muy sencilla. Al momento de cargar el paquete definimos en sus opciones los margenes que deseamos.

\usepackage[top=1cm, bottom=1.25cm, left=2.5cm, right=1.25cm]{geometry}
\usepackage[margin=1cm]{geometry}

 

Caratula

Lo siguiente que haremos es crear una caratula para nuestro documento. Para esto, primero introducimos los datos del documentos con las etiquetas title, author y date. Hecho esto, debemos poner la etiqueta maketitle en la posición del documento donde queremos que aparezca la caratula. Usualmente será al inicio del documento, es decir, inmediatamente luego de begin{document}. Veamos un ejemplo.

 \title{Primer documento en Latex!!}
 \author{Mauricio}
 \date{Año 2016}
 \maketitle

 

latex_caratula

 

Si queremos que la caratula esté en una página separada, nos valemos de la etiqueta newpage. Esta etiqueta genera un salto de página, es decir, que en la ubicación donde la pongamos continua el documento en la siguiente página.

\newpage

 

Índice

Ya vimos como podemos estructurar nuestro documento mediante secciones y subsecciones. Si ahora queremos incluir un índice, simplemente agregamos la etiqueta tableofcontents en la posición donde queremos que aparezca este. Veamos un ejemplo.

\tableofcontents

 

latex_indice

 

Un punto a tener en cuenta es que, al momento de compilar, para que el índice se genere correctamente debemos compilar más de una vez. Esto se debe a como se indexa el contenido durante la compilación.

Si tenemos títulos de secciones o subsecciones que son largos y no quedan bien en el índice, tenemos la posibilidad de agregar un titulo corto para que aparezca en el índice. Esto lo hacemos incluyendo el titulo corto entre corchetes al momento de crear una sección, subseccion, etc.

\section[Titulo Corto]{Titulo Largo} % No olvidar compilar más de una vez para
                                       que el índice se genere correctamente

Si hay alguna sección que no deseamos que aparezca en el indice, podemos hacer que esta no aparezca poniendo un * al momento de crearla.

\section*{Titulo}

Por defecto, los contenidos que aparecerán en el índice son todos aquellos con una profundidad máxima de tres. Si queremos modificar este comportamiento debemos agregar el siguiente comando en el preámbulo.

\setcounter{tocdepth}{N} % Donde N es la profundidad que queremos que tenga el índice

 

Encabezado y Pie de Página

Para agregar un encabezado o un pie de página a nuestros documento, con el fin de incluir información como la página, la sección o el autor, utilizamos el paquete fancyhdr. Este lo cargamos como cualquier otro paquete. Luego de cargarlo debemos agregar el comando pagestyle{fancy}, y finalmente empezar a agregar el contenido que deseamos que aparezca.

\usepackage{fancyhdr}
\pagestyle{fancy}

Para indicar el contenido tenemos varios métodos. El más simple es mediante el siguiente grupo de etiquetas.

\fancyhf{}

\lhead{<texto>}
\chead{<texto>}
\rhead{<texto>}

\lfoot{<texto>}
\cfoot{<texto>}
\rfoot{<texto>}

En esta etiquetas, la primer letra hace referencia a la posición horizontal (izquierda, centro, derecha), mientras que con head y foot indicamos si hacemos referencia al encabezado o al pie de página. Veamos un ejemplo.

\fancyhf{}
\lhead{Sección \thesection}
\rhead{pag. \thepage}

Lo que hacemos con estos comandos es indicar en el encabezado (head), a la izquierda la sección actual, mientras que a la derecha la página actual. Con los comandos thesectionthepage obtenemos el nombre de la sección actual y la página actual, respectivamente.

 

Video

 

 

Comentarios