<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%
% \iffalse meta-comment
%
%  -------------------------------------------------------------------
%                            LICENSE
%  -------------------------------------------------------------------
%  
%  This is a generated file.
%  
%  Copyright (C) 2012-2015 by Omar Salazar
%  osalazarm@correo.udistrital.edu.co
%  Laboratory for Automation and Computational Intelligence (LAMIC)
%  Engineering Department
%  Universidad Distrital Francisco Jose de Caldas
%  Bogota, Colombia
%  http://www.udistrital.edu.co/
%  
%  This file may be distributed and/or modified under the
%  conditions of the LaTeX Project Public License, either
%  version 1.2 of this license or (at your option) any later
%  version. The latest version of this license is in:
%  http://www.latex-project.org/lppl.txt
%  and version 1.2 or later is part of all distributions of
%  LaTeX version 1999/12/01 or later.
%  
%  This work has the LPPL maintenance status `maintained'.
%  
%  The Current Maintainer of this work is Omar Salazar.
%  
%  This work consists of the source files:
%   - articleingud.dtx (documented LaTeX file)
%   - articleingud.ins (installer)
%  
%  -------------------------------------------------------------------
%                            LICENCIA
%  -------------------------------------------------------------------
%  
%  Este es un archivo generado.
%  
%  Derechos de autor (C) 2012-2015 por Omar Salazar
%  osalazarm@correo.udistrital.edu.co
%  Laboratorio de Automatica e Inteligencia Computacional (LAMIC)
%  Facultad de Ingenieria
%  Universidad Distrital Francisco Jose de Caldas
%  Bogota, Colombia.
%  http://www.udistrital.edu.co/
%  
%  Este archivo puede ser redistribuido y/o modificado
%  bajo las condiciones de la Licencia Publica del Proyecto LaTeX,
%  version 1.2 o cualquier version superior (a su opcion).
%  La ultima version de esta licencia se encuentra en
%  http://www.latex-project.org/lppl.txt
%  y la version 1.2 o superior es parte de todas las distribuciones
%  de LaTeX version 1999/12/01 o superior.
%  
%  Este trabajo tiene el estado LPPL de `mantenido'.
%  
%  El responsable del mantenimiento de este trabajo es Omar Salazar.
%  
%  Este trabajo consiste de los archivos fuente:
%   - articleingud.dtx (archivo LaTeX documentado)
%   - articleingud.ins (instalador)
%		 		
% \fi 
%
% \iffalse
%
%&lt;*drv&gt;
%    \begin{macrocode}
\documentclass{ltxdoc}
\usepackage[latin1]{inputenc}
\usepackage{hyperref}
\newcommand{\filename}[1]{\texttt{#1}}
%    \end{macrocode}
%
% La siguiente lista de |\DoNotIndex| es todo lo que
% no debe aparecer en el índice de la documentación.
%
%    \begin{macrocode}
\DoNotIndex{}
%    \end{macrocode}
%    \begin{macrocode}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
\DocInput{articleingud.dtx}
\end{document}
%&lt;/drv&gt;
%
% \fi
%
% \CheckSum{1350}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&amp;
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \&lt;
%   Equals        \=     Greater than  \&gt;     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \changes{v0.1}{2012/04/24}{Versión inicial}
% \changes{v0.2}{2012/11/10}{Revisión sobre tamaño de papel usado por INGENIERIA
%                            y corrección de algunos errores de la clase.
%                            Actualizada la documentación.}
% \changes{v0.3}{2015/10/10}{Actualización a un nuevo formato.
%                            Los cambios no son compatibles con las versiones
%                            v0.1 y v0.2}
%
% \StopEventually{\PrintChanges}
%
% \title{Clase de documento \textsf{articleingud}\thanks{Este documento
%        corresponde a la versión~v0.3, 2015/10/10.}}
% \author{Omar Salazar\\
%         Laboratorio de Automática e
%         Inteligencia Computacional\\
%         Universidad Distrital Francisco José de Caldas\\
%         Facultad de Ingeniería\\
%         Bogot\'a, Colombia\\
%         \texttt{osalazarm@correo.udistrital.edu.co}\\
%         \texttt{http://www.udistrital.edu.co}}
% \date{Octubre 10, 2015}
%
% \maketitle
%
% \renewcommand{\abstractname}{Resumen}
%
% \begin{abstract}
% \noindent
% Este documento muestra la implementación y documentación
% \LaTeX{} de la clase de documento \textsf{articleingud}.
% Esta clase está destinada
% a la revista INGENIERIA de la Facultad de Ingeniería 
% de la Universidad Distrital ``Francisco José de Caldas''.
% Los cambios hechos en la versión v0.3 son significativos
% y no son compatibles con las anteriores versiones v0.1 y v0.2.
% Esta clase está basada en la clase estándar \textsf{article}.
% La mayoría de los comandos estándar
% funcionan en \textsf{articleingud}.
% \end{abstract}
% 
% \renewcommand{\contentsname}{Contenido}
%
% \tableofcontents
%
% \pagestyle{headings}
%
% \section{Introducción}
%
% La revista INGENIER\'IA es una publicación periódica
% de la Facultad de Ingeniería de la Universidad Distrital
% ``Francisco José de Caldas''\footnote{Para mayor información visitar
% \texttt{http://revistas.udistrital.edu.co/ojs/index.php/reving}}.
% Tiene como propósito principal
% divulgar el trabajo académico y científico
% tanto dentro como fuera del país. Por tal motivo,
% los artículos que se publican en la revista deben tener
% relación con el trabajo en ingeniería.
%
% La clase de documento \textsf{articleingud}
% se ha creado para que los autores familiarizados
% con el paquete de macros \LaTeXe{} puedan
% escribir sus artículos, obteniendo como beneficio
% la calidad tipográfica de \TeX{} e incluyendo
% el manejo adecuado de ecuaciones, típicas en
% artículos de caracter científico.
% En las próximas secciones se describirán las características
% de la clase, así como su implementación \LaTeX.
%
% \section{Módulos \textsf{Docstrip}}
%
% Esta clase ha sido desarrollada usando los estándares
% de documentación de código \LaTeX{} por medio de
% \textsf{Docstrip}.
% Los siguientes módulos se implementaron para generar los
% diferentes archivos de la clase.
%
% \vskip10pt
% \begin{tabular}{ll}
% \textbf{Opción}&amp;\textbf{Resultado}\\
% \hline
% cls &amp; Genera el archivo de la clase (|*.cls|)\\
% drv &amp; Genera el archivo maestro de documentación
% \LaTeX{} (|*.drv|)\\
% tmpls &amp; Genera un archivo plantilla para artículos en español (|*.tex|)\\
% tmple &amp; Genera un archivo plantilla para artículos en inglés (|*.tex|)\\
% \end{tabular} 
%
% \section{Cómo usar}
%
% \DescribeMacro{\documentclass}
% Esta clase se usa de la forma usual.
% Dentro del comando estándar |\documentclass|
% se indica la clase de documento \textsf{articleingud}
% en la siguiente forma
% \begin{verbatim}
% \documentclass[&lt;opciones&gt;]{articleingud}
% \end{verbatim}
% Las |&lt;opciones&gt;| posibles en esta clase de
% documento se presentan en la siguiente sección.
%
% \section{Opciones}
%
% \subsection{Tamaño de papel}
%
% \DescribeMacro{a4paper}
% (Opción estándar)
% Establece el tamaño del papel en A4 (297~mm x 210~mm).\\
% \DescribeMacro{a5paper}
% (Opción estándar)
% Establece el tamaño del papel en A5 (210~mm x 148~mm).\\
% \DescribeMacro{b5paper}
% (Opción estándar)
% Establece el tamaño del papel en B5 (250~mm x 176~mm).\\
% \DescribeMacro{letterpaper}
% (Opción estándar por defecto).
% Establece el tamaño del papel en
% carta (11~in x 8.5~in = 279.4~mm x 215.9~mm).\\
% \DescribeMacro{legalpaper}
% (Opción estándar)
% Establece el tamaño del papel en
% oficio (14~in x 8.5~in = 355.6~mm x 215.9~mm).\\
% \DescribeMacro{executivepaper}
% (Opción estándar)
% Establece el tamaño del papel en
% ejecutivo (10.5~in x 7.25~in = 266.7~mm x 184.15~mm).
%
% \subsection{Orientación del papel}
%
% \DescribeMacro{landscape}
% (Opción estándar)
% Invierte la orientación del papel a horizontal.\\
% \DescribeMacro{portrait}
% (Opción estándar por defecto).
% Invierte la orientación del papel a vertical.
%
% \subsection{Tamaño de letra}
%
% \DescribeMacro{10pt}
% (Opción estándar por defecto).
% Establece el tamaño de letra en 10~pt.\\
% \DescribeMacro{11pt}
% (Opción estándar)
% Establece el tamaño de letra en 11~pt.\\
% \DescribeMacro{12pt}
% (Opción estándar)
% Establece el tamaño de letra en 12~pt.
%
% \subsection{Impresión por una o ambas caras}
%
% \DescribeMacro{oneside}
% (Opción estándar defecto).
% Establece la impresión del artículo
% por una cara de la hoja de papel.\\
% \DescribeMacro{twoside}
% (Opción estándar)
% Establece la impresión del artículo
% por ambas caras de la hoja de papel.
%
% \subsection{Versión final o borrador del artículo}
%
% \DescribeMacro{draft}
% (Opción estándar)
% Establece el artículo como una versión en borrador.\\
% \DescribeMacro{final}
% (Opción estándar por defecto).
% Establece el artículo como la versión final.
%
% \subsection{Impresión a una y dos columnas}
%
% \DescribeMacro{onecolumn}
% (Opción estándar por defecto)
% Establece el artículo en modo de una columna.\\
% \DescribeMacro{twocolumn}
% (Opción estándar)
% Establece el artículo en modo de dos columnas.
%
% \subsection{Numeración de ecuaciones}
%
% \DescribeMacro{leqno}
% (Opción estándar)
% Establece la numeración de las ecuaciones con el número
% a la izquierda. La numeración con el número a la derecha es la
% opción por defecto.
%
% \subsection{Justificación de ecuaciones}
%
% \DescribeMacro{fleqn}
% (Opción estándar)
% Establece la justificación de las ecuaciones 
% a la izquierda. La opción por defecto es mostrar las
% ecuaciones centradas.
%
% \subsection{Estilo de bibliografía}
%
% \DescribeMacro{openbib}
% (Opción estándar)
% Establece el estilo de la bibliografía en ``abierto''.
% La opción por defecto es una bibliografía ``cerrada''
%
% \subsection{Revisión por pares}    
%
% \DescribeMacro{peerreview}
% Establece la clase de documento para revisión
% por pares. Desactiva varias de las opciones
% donde se imprime el nombre y afiliación de
% los autores para mantener confidencialidad
% en el proceso de revisión.
%
% \section{Estructura de un documento}
%
% Esta clase de documento es derivada de la clase estándar
% \textsf{article}, sin embargo, un artículo escrito
% con la clase \textsf{articleingud} debería
% tener la siguiente estructura\footnote{%
% Ver los archivos \filename{template.tex} y \filename{plantilla.tex}
% para unas plantillas en inglés y español.}.
%
% \subsection{Inicio del archivo fuente}
%
% Como es costumbre, el primer comando a especificar
% es |\documentclass|.
% Especifique dentro de su argumento obligatorio el
% nombre de la clase \textsf{articleingud}.
%
%    \begin{macrocode}
%&lt;*tmpls|tmple&gt;
\documentclass[letterpaper,12pt,twoside]{articleingud}
%    \end{macrocode}
%
% \subsection{Opciones de la clase}
%
% El siguiente conjunto de opciones se tienen
% para poderlas especificar dentro del argumento opcional de
% |\documentclass|.
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                OPCIONES
%%----------------------------------------------------------
%% Use las siguientes opciones en
%% \documentclass[&lt;opciones&gt;]{articleingud}
%%
%%  -- Tamaño de letra:    10pt (valor por defecto),
%%                         11pt,
%%                         12pt
%%  -- Tipo de papel:      letterpaper (valor por defecto),
%%                         a4paper,
%%                         a5paper,
%%                         b5paper,
%%                         legalpaper,
%%                         executivepaper
%%  -- Orientación:        portrait (valor por defecto)
%%                         landscape
%%  -- Impresión:          oneside (valor por defecto),
%%                         twoside
%%  -- Calidad:            final (valor por defecto),
%%                         draft
%%  -- Columnas:           onecolumn (valor por defecto),
%%                         twocolumn
%%  -- Revisión por pares: peerreview
%%  -- Numeración de ecuaciones (numeración por defecto a la derecha):
%%                         leqno (numeración a la izquierda)
%%  -- Justificación de ecuaciones (por defecto se centran):
%%                         fleqn (justificadas a la izquierda)
%%  -- Estilo de bibliografía (por defecto el estilo es cerrado):
%%                         openbib
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                OPTIONS
%%----------------------------------------------------------
%% Use the following options in
%% \documentclass[&lt;options&gt;]{articleingud}
%%
%%  -- Point size:  10pt (default),
%%                  11pt,
%%                  12pt
%%  -- Paper size:  letterpaper (default),
%%                  a4paper,
%%                  a5paper,
%%                  b5paper,
%%                  legalpaper,
%%                  executivepaper
%%  -- Orientation: portrait (default)
%%                  landscape
%%  -- Print size:  oneside (default),
%%                  twoside
%%  -- Quality:     final (default),
%%                  draft
%%  -- Columns:     onecolumn (default),
%%                  twocolumn
%%  -- peer review: peerreview
%%  -- Equation numbering (equation numbers on
%%                         the right is the default):
%%                  leqno
%%  -- Displayed equations (centered is the default):
%%                  fleqn (equations start at the same
%%                         distance from the right side)
%%  -- Open bibliography style (closed is the default):
%%                  openbib
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Preámbulo del documento}
%
% Esta sección se usa para cargar paquetes y hacer (re)definiciones.
% No se permite  escribir algún tipo de texto en esta sección.
% Algunos de los paquetes más comunes son:
% \begin{enumerate}
% \item \filename{inputenc.sty} con la opción |latin1|.
% Carga la codificación adecuada con el fin de
% poder escribir en español.
% \item \filename{amsmath.sty}, \filename{amsfonts.sty} y
% \filename{amssymb.sty}. Estos paquetes
% proporcionan varios comandos y ambientes útiles para
% el manejo de fuentes y símbolos matemáticos,
% así como para poder darle formato adecuado a las ecuaciones.
% \item \filename{graphicx.sty} para poder cargar imágenes desde
% archivos externos con su comando |\includegraphics|.    
% \item \filename{subfigure.sty} para poder crear subtablas y subfiguras.
% Las opciones |tight| y |footnotesize| reducen la cantidad de
% espacio entre subtablas y subfiguras, así como
% mantienen el formato de las leyendas de las mismas.
% \item \filename{cite.sty}. Este paquete
% ofrece la posibilidad de ordenar y
% agrupar automáticamente más de tres referencias
% especificadas en el argumento de |\cite|.
% El usuario no tiene que preocuparse
% por separar las referencias con el formato adecuado ya que este
% paquete lo hace automáticamente.   
% \end{enumerate}
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%           PREÁMBULO
%%----------------------------------------------------------
%%
%%      Aquí puede cargar paquetes con \usepackage
%%      y hacer (re)definiciones con
%%      \newcommand, \renewcommand, \newenvironment,
%%      \renewenvironment, etc.
%%
%%----------------- PAQUETES -------------------------------
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%           PREAMBLE
%%----------------------------------------------------------
%%
%%      Here you can load packages with \usepackage
%%      and make (re)definitions with
%%      \newcommand, \renewcommand, \newenvironment,
%%      \renewenvironment, etc, ...
%%
%%----------------- PACKAGES -------------------------------
%&lt;/tmple&gt;
%&lt;tmpls&gt;\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[tight,footnotesize]{subfigure}
\usepackage{cite}
%&lt;*tmple&gt;
%%----------------- (RE)DEFINITIONS------------------------
%&lt;/tmple&gt;
%&lt;*tmpls&gt;
%%----------------- (RE)DEFINICIONES------------------------
\renewcommand{\figurename}{Figura}
\renewcommand{\tablename}{Tabla}
\renewcommand{\refname}{Referencias}
\renewcommand{\appendixname}{Ap\'endices}
%&lt;/tmpls&gt;
%    \end{macrocode}
%
% \subsection{Inicio del documento}
%
% El inicio del documento lo marca el comando |\begin{document}|.
% A partir de este punto se puede escribir el contenido del artículo
% propiamente.
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%           DOCUMENTO
%%----------------------------------------------------------
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%           DOCUMENT
%%----------------------------------------------------------
%&lt;/tmple&gt;
\begin{document}
%    \end{macrocode}
%
% \subsection{Información del documento}
%
% La información del documento se divide en varias
% partes: títulos, autores, fechas, volumen, número,
% citas y paginación. Todas ellas se describen a continuación.
% 
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%       INFORMACIÓN DEL ARTÍCULO
%%----------------------------------------------------------
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%       PAPER'S INFORMATION
%%----------------------------------------------------------
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsubsection{El título del artículo}
%
% La forma de especificar el título del
% artículo es por medio del comando |\title|.
% Este comando tiene cuatro argumentos: el primero opcional
% y los otros tres obligatorios. Su uso es de la siguiente forma:
% \begin{enumerate}
% \item |\title[titulo corto]{titulo largo}{titulo secundario}{tipo articulo}|.
% Cuando se usa en esta forma, la información
% de |titulo corto| se pone en la
% cabecera del documento, |titulo largo|
% corresponde al título principal del artículo.
% |titulo secundario| especifica un segundo título
% (generalmente en otro idioma).
% |tipo articulo| corresponde al tipo de artículo:
% Research/Review/Case-study/Short/Opinion.
% \item |\title{titulo largo}{titulo secundario}{tipo articulo}|
% Si se usa en esta forma,
% |titulo largo| se pone como título
% principal y en la cabecera del documento.
% |titulo secundario| y |tipo articulo| siguen funcionando en la misma forma.
% \end{enumerate}
%
%    \begin{macrocode}
\title
%&lt;*tmple&gt;
  [Short title of the paper]% (Optional)
  {Main title of the paper}% (Required)
  {Secondary title of the paper}% (Required)
  {Type of paper}% (Required) Research/Review/Case-study/Short/Opinion paper
%&lt;/tmple&gt;
%&lt;*tmpls&gt;
  [Título corto del artículo]% (Opcional)
  {Título principal del artículo}% (Obligatorio)
  {Título secundario del artículo}% (Obligatorio)
  {Tipo de artículo}% (Obligatorio) Artículo de Investigación/Revisión/Estudio de caso/Corto/Opinión
%&lt;/tmpls&gt;
%    \end{macrocode}
%
% \subsubsection{Autores del artículo}
%
% La información de los autores del artículo se realiza
% con el comando |\author|.
% Este comando tiene dos argumentos: el primero opcional y
% el segundo obligatorio. Su uso es de la siguiente forma:
% \begin{enumerate}
% \item |\author[nombre cortos]{nombres largos}|
% Cuando se usa en esta forma
% la información de |nombre cortos|
% se pone en la cabecera del documento y |nombres largos|
% corresponde a los nombres (junto con las afilicaciones)
% de los autores del artículo.
% \item |\author{nombres}|.
% Si se usa en esta forma entonces |nombres|
% se ponen en la cabecera y en la primera página del artículo.
% \end{enumerate}
%
% Cada autor debe de ir separado con el comando |\and|
% tanto en el argumento opcional como en el obligatorio.
%
% La información de las afiliaciones de los autores
% siguen inmediatamente a los autores dentro del argumento
% obligatorio con el comando |\thanks|.
% Cada autor debe tener su propia afiliación, y por consiguiente,
% su propio comando |\thanks|.
%
% El comando |\thanks| recibe tres argumentos, el primero es
% opcional y los otros dos son obligatorios.
% Su uso es en la siguiente forma.
% \begin{enumerate}
% \item |\thanks[correspondencia]{etiqueta}{afiliacion}|
% Cuando se usa en esta forma se está identificando al
% autor de correspondencia del artículo.
% La información de |correspondencia|
% se pone en la parte inferior de los autores.
% Esta información debería ser un correo electrónico
% o una dirección del autor de correspondencia.
% |etiqueta| es un caracter alfanumérico (``a--z'', ``0--9'')
% que identifica los autores con la misma afiliación.
% |afiliacion| es propiamente la información de la
% afiliación del autor, por ejemplo, el nombre de una
% universidad.
% \item |\thanks{etiqueta}{afiliacion}|.
% Si se usa en esta forma entonces |\thanks| funciona de
% igual forma a lo antes descrito, pero el autor no es identificado
% como de correspondencia.
% \end{enumerate}
%
%    \begin{macrocode}
\author
%&lt;*tmple&gt;
  [First Author Name\and% &lt;-- Each author should be separated with \and
   Second Author Name\and
   Third Author Name\and 
   Last Author Name]% (Optional)
  {First Author Name% &lt;-- Do not erase this percentage symbol
   \thanks%[Correspondence email: 1st-author@email.org]
          {1}% &lt;-- Use the same label ('a-z' or '0-9') for authors with the same affiliation
          {1st Author affiliation}\and
   Second Author Name% &lt;-- Do not erase this percentage symbol
   \thanks%[Correspondence email: 2nd-author@email.org]
          {1}% &lt;-- Affiliation label
          {2nd Author affiliation}\and
   Third Author Name% &lt;-- Do not erase this percentage symbol
   \thanks%[Correspondence email: 3rd-author@email.org]
          {2}% &lt;-- Affiliation label
          {3rd Author affiliation}\and
   Last Author Name% &lt;-- Do not erase this percentage symbol
   \thanks[Correspondence email: last-author@email.org]
          {3}% &lt;-- Affiliation label
          {Last Author affiliation}}% (Required)
%&lt;/tmple&gt;
%&lt;*tmpls&gt;
  [Primer autor\and% &lt;-- Separar cada autor con \and
   Segundo autor\and
   Tercer autor\and
   Último autor]% (Opcional)
  {Primer autor% &lt;-- No borrar este símbolo porcentaje
   \thanks%[E-mail de correspondencia: Autor-1@email.org]
          {1}% &lt;-- Usar la misma etiqueta ('a-z' o '0-9') para autores con igual afiliación
          {Afiliación primer autor}\and
   Segundo autor% &lt;-- No borrar este símbolo porcentaje
   \thanks%[E-mail de correspondencia: Autor-2@email.org]
          {1}% &lt;-- Etiqueta de afiliación
          {Afiliación segundo autor}\and
   Tercer autor% &lt;-- No borrar este símbolo porcentaje
   \thanks%[E-mail de correspondencia: Autor-3@email.org]
          {2}% &lt;-- Etiqueta de afiliación
          {Afiliación tercer autor}\and
   Último autor% &lt;-- No borrar este símbolo porcentaje
   \thanks[E-mail de correspondencia: Autor-n@email.org]
          {3}% &lt;-- Etiqueta de afiliación
          {Afiliación último autor}}% (Requerido)
%&lt;/tmpls&gt;
%    \end{macrocode}
%
% \subsubsection{Fecha de recepción, modificación y aceptación}
%
% La fecha de recepción, modificación y aceptación del artículo
% se especifica dentro del comando |\date|.
% Sólo recibe un argumento obligatorio.
%
%    \begin{macrocode}
\date
%&lt;*tmpls&gt;
  {Recibido: dd-mm-aaaa.
   Modificado: dd-mm-aaaa.
   Aceptado: dd-mm-aaaa}% (Requerido)
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
  {Received: dd-mm-yyyy.
   Modified: dd-mm-yyyy.
   Accepted: dd-mm-yyyy}% (Required)
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsubsection{Cita del artículo}
%
% El artículo debería ser referenciado de una manera determinada
% de acuerdo a un estilo de referenciación.
% La información de la cita correcta se especifica con el
% comando |\INGUDsetciteinfo| y es reponsabilidad del
% usuario de la clase \textsf{articleingud} darle el formato
% adecuado. Aquí sólo se presenta un ejemplo.
%
%    \begin{macrocode}
\INGUDsetciteinfo
%&lt;*tmpls&gt;
  {\textcopyright{} Los autores;
   concesionario: Revista INGENIER\'IA. ISSN 0121-750X, E-ISSN 2344-8393. 
   Citar este artículo como: Autor, F., Autor, J., Autor, S.:
   El título del artículo. INGENIER\'IA, Vol. XX, Num. XX, 2015 pp:pp.
   doi:10.14483/udistrital.jour.reving.20XX.X.aXX}% (Obligatorio)
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
  {\textcopyright{} The authors;
   licensee: Revista INGENIER\'IA. ISSN 0121-750X, E-ISSN 2344-8393. 
   Cite this paper as: Author, F., Author, J., Author, S.:
   The Title of the Paper. INGENIER\'IA, Vol. XX, Num. XX, 2015 pp:pp.
   doi:10.14483/udistrital.jour.reving.20XX.X.aXX}% (Required)
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsubsection{Volumen de la revista}
%
% El artículo se publica en un volumen que normalmente
% tiene varios números por año.
% La información del volumen actual de la revista donde
% será publicado el artículo se especifica con el comando
% |\INGUDsetvolume|. El argumento de este comando
% debe ser solamente un número, sin ningún formato especial.
%
%    \begin{macrocode}
\INGUDsetvolume
%&lt;*tmpls&gt;
  {1}%&lt;-- Volumen (sólo número)
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
  {1}%&lt;-- Volume (the number only)
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsubsection{Número de la revista}
%
% El comando |\INGUDsetnumber| es análogo a
% |\INGUDsetvolume| pero para el número de la revista.
%
%    \begin{macrocode}
\INGUDsetnumber
%&lt;*tmpls&gt;
  {1}%&lt;-- Número (sólo número)
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
  {1}%&lt;-- Number (the number only)
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsubsection{Página inicial del artículo}
%
% El comando |\INGUDsetinitialpage| configura el número
% de página inicial del artículo que está siendo procesado.
% Es frecuente que un artículo inicie en una página diferente
% de la número uno. El argumento de este comando
% debe ser solamente un número, sin ningún formato especial.
%
%    \begin{macrocode}
\INGUDsetinitialpage
%&lt;*tmpls&gt;
  {1}%&lt;-- Página inicial del artículo (sólo número)
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
  {1}%&lt;-- First page of the paper (the number only)
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Impresión de la información del documento}
%
% El comando |\maketitle|  realiza la impresión de la información
% especificada con los comandos anteriores.
% El uso de este comando es como en el caso estándar sólo que
% es necesario finalizarlo con |\endmaketitle|.
% Éste último comando no debería ser encerrado por ningún
% ambiente que contenga un |\parbox| o |\minipage|,
%
%    \begin{macrocode}
%&lt;*tmpls|tmple&gt;
\maketitle
\endmaketitle
%&lt;/tmpls|tmple&gt;
%    \end{macrocode}
%
% \subsection{Primer resumen del documento}
%
% El primer resumen del artículo se especifica con el
% ambiente |abstract| en la forma:
% \begin{verbatim}
% \begin{abstract}
% ...texto del resumen...
% \end{abstract}
% \end{verbatim}
% Normalmente este primer resumen
% se escribe en el idioma por defecto del artículo.
% Luego se escribe un segundo resumen en otro idioma,
% el cual es la traducción del primero.
% Por defecto el título del resumen aparece en inglés,
% así que si se está escribiendo el artículo
% en un idioma diferente, se debe redefinir el comando
% |\abstractname| justo antes de usar el ambiente.
% En la versión 0.3 se adoptó un resumen estructurado que,
% entre otras cosas, incluye las palabras clave del artículo.
% Por tal motivo el ambiente |INGUDkeywords| y el comando
% |INGUDkeywordsname| de las versiones v0.1 y v0.2 fueron
% eliminados de la versión v0.3. En cambio se creó el ambiente
% |INGUDstructured| que recibe como único argumento el nombre
% del ambiente para el resumen estructurado.  
% 
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                RESUMEN
%%----------------------------------------------------------
\renewcommand{\abstractname}{Resumen}
\begin{abstract} % se recomienda no exceder 300 palabras
%%-------------------------------------------
\begin{INGUDstructured}{Contexto}
Un párrafo de entre 2-3 frases,
que describa brevemente las preguntas o problema
que motivaron el estudio, los antecedentes o trabajos
previos relacionados, y el enfoque propuesto 
(voz activa, tiempo presente).
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Método}
Un párrafo de entre 3-4 frases,
que describa los principios, protocolos, técnicas,
herramientas y/o materiales (datos, imágenes,
bases de datos, documentos, normas, entrevistas, etc.)
utilizados para efectuar o implementar de manera
confiable y rigurosa el enfoque propuesto.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Resultados}
Un párrafo de entre 3-4 frases, que describa
los hallazgos o productos  resultado del método
como fue aplicado.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Conclusiones}
Un párrafo de entre 2-3 frases, que enfatice
hasta que punto los resultados contribuyen a 
resolver el problema o pregunta planteada en
el contexto inicial, y que nuevas alternativas
de trabajo futuro se desprende a partir
de este. Este es el mensaje central que los
autores desean comunicar.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Palabras clave}
término1, término2, término3.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Agradecimientos}
A otros participantes o patrocinadores
del estudio, en caso de ser necesario.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Idioma}
(Español o inglés).
\end{INGUDstructured}
\end{abstract}
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                ABSTRACT
%%----------------------------------------------------------
\begin{abstract} % no more than 300 words is recommended
%%-------------------------------------------
\begin{INGUDstructured}{Context}
A paragraph roughly around 2-3 sentences long,
describing briefly the problem or question that
motivated the study, a background of previous or
related work, and the proposed approach.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Method}
A paragraph roughly around 3-4 sentences long,
describing the principles, protocols, techniques,
tools and/or materials (including data, images,
databases or primary sources such as inter-views,
documents or regulations) used to conduct or implement
reliably and rigorously the pro-posed approach.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Results}
A paragraph roughly around 3-4 sentences long,
describing the findings or the outcomes obtained as a
result of the method that was conducted.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Conclusions}
A paragraph roughly around 2-3
sentences long, emphasising to what extent
the results contribute to solve the problem
or question stated in the context section,
and what avenues for future research remain open.
This is the take-home message to the readers.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Keywords}
keyword1, keyword2, keyword3.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Acknowledgements}
To other participants, funding agencies or
sponsors (optional).
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Language}
(english or spanish).
\end{INGUDstructured}
\end{abstract}
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Segundo resumen del documento}
%
% Aquí se hace lo mismo que en el primer resumen,
% sólo que se escribe en otro idioma.
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                ABSTRACT
%%----------------------------------------------------------
\renewcommand{\abstractname}{Abstract}
\begin{abstract} % no more than 300 words is recommended
%%-------------------------------------------
\begin{INGUDstructured}{Context}
A paragraph roughly around 2-3 sentences long,
describing briefly the problem or question that motivated
the study, a background of previous or related work,
and the proposed approach.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Method}
A paragraph roughly around 3-4 sentences long,
describing the principles, protocols, techniques,
tools and/or materials (including data, images,
databases or primary sources such as inter-views,
documents or regulations) used to conduct or implement
reliably and rigorously the pro-posed approach.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Results}
A paragraph roughly around 3-4 sentences long,
describing the findings or the outcomes obtained as a
result of the method that was conducted.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Conclusions}
A paragraph roughly around 2-3
sentences long, emphasising to what extent
the results contribute to solve the problem
or question stated in the context section,
and what avenues for future research remain open.
This is the take-home message to the readers.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Keywords}
keyword1, keyword2, keyword3.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Acknowledgements}
To other participants, funding agencies or
sponsors (optional).
\end{INGUDstructured}
\end{abstract}
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                RESUMEN
%%----------------------------------------------------------
\renewcommand{\abstractname}{Resumen}
\begin{abstract} % se recomienda no exceder 300 palabras
%%-------------------------------------------
\begin{INGUDstructured}{Contexto}
Un párrafo de entre 2-3 frases,
que describa brevemente las preguntas o problema
que motivaron el estudio, los antecedentes o trabajos
previos relacionados, y el enfoque propuesto
(voz activa, tiempo presente).
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Método}
Un párrafo de entre 3-4 frases,
que describa los principios, protocolos, técnicas,
herramientas y/o materiales (datos, imágenes,
bases de datos, documentos, normas, entrevistas, etc.)
utilizados para efectuar o implementar de manera
confiable y rigurosa el enfoque propuesto.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Resultados}
Un párrafo de entre 3-4 frases, que describa
los hallazgos o productos  resultado del método
como fue aplicado.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Conclusiones}
Un párrafo de entre 2-3 frases, que enfatice
hasta que punto los resultados contribuyen a
resolver el problema o pregunta planteada en
el contexto inicial, y que nuevas alternativas
de trabajo futuro se desprende a partir
de este. Este es el mensaje central que los
autores desean comunicar.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Palabras clave}
término1, término2, término3.
\end{INGUDstructured}
%%-------------------------------------------
\begin{INGUDstructured}{Agradecimientos}
A otros participantes o patrocinadores
del estudio, en caso de ser necesario.
\end{INGUDstructured}
\end{abstract}
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Introducción, desarrollo del artículo y conclusiones}
%
% Desde este punto puede hacer uso de los comandos de
% seccionamiento |\section|, |\subsection|, |\subsubsection|,
% |\paragraph| y |\subparagraph| para dividir el documento
% en las secciones necesarias.
% Normalmente desde este punto se muestra el desarrollo del
% tema principal comenzando con la introducción y luego
% agregando secciones para mostrar procedimientos, teorías y demás.
% La última sección debería ser las conclusiones del artículo.
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                INTRODUCCIÓN
%%----------------------------------------------------------
\section{Introducción}
Introducción de su artículo.
%%
%%   Agregue secciones adicionales cuando lo necesite
%%   con los comandos \section, \subsection, \subsubsection,
%%   \paragraph y \subparagraph. Puede hacer uso de los comandos
%%   estándar de \LaTeX 
%%
\section{última sección}
Última sección del artículo.
%%----------------------------------------------------------
%%                CONCLUSIONES
%%----------------------------------------------------------
\section{Conclusiones}
Las conclusiones de su artículo.
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                INTRODUCTION
%%----------------------------------------------------------
\section{Introduction}
Introduction of your paper.
%%
%%  Add additional sections as you need with 
%%  \section, \subsection, \subsubsection,
%%  \paragraph and \subparagraph commands. You
%%  can use any other \LaTeX command
%%
\section{Final section}
Final section of your paper.
%%----------------------------------------------------------
%%                CONCLUSIONS
%%----------------------------------------------------------
\section{Conclusions}
Conclusions of your paper.
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Apéndices}
%
% La forma de especificar el inicio de los apéndices
% es por medio del comando |\appendix|.
% Luego de esto, podrá seguir usando los comandos
% de seccionamiento en la forma habitual.
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                APÉNDICES
%%----------------------------------------------------------
\appendix
\section{Primer apéndice}
Texto del primer apéndice.
\section{Segundo apéndice}
Texto del segundo apéndice.
%%
%%   Agregue apéndices adicionales cuando los necesite.
%%
\section{Último apéndice}
Texto del último apéndice.
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                APPENDIXES
%%----------------------------------------------------------
\appendix
\section{First appendix}
Text of first appendix.
\section{Second appendix}
Text of second appendix.
%%
%%   Add additional appendixes as you need.
%%
\section{Final appendix}
Text of final appendix.
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Reconocimientos}
%
% Los reconocimientos deben ser iniciados
% con el comando |\section*|, dado que no es necesario
% que se numere esta sección. Esta sección podría ser opcional
% si se realizan los agradecimientos en el resumen (abstract).
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                RECONOCIMIENTOS
%%----------------------------------------------------------
\section*{Reconocimientos}% &lt;-- Usar \section*
Los reconocimientos de su artículo.
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                ACKNOWLEDGMENTS
%%----------------------------------------------------------
\section*{Acknowledgment}% &lt;-- Please use \section*
Acknowledgment of your paper.
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Referencias}
%
% Las referencias usan el ambiente |thebibliography|.
% Sin embargo, es conveniente usar Bib\TeX{} para preparar
% las referencias.
% Lo primero es usar el comando |\bibliography| para especificar
% un archivo \filename{*.bib} donde se encuentra la
% base de datos bibliográfica.
% En el código que se muestra se supone que el archivo
% tiene el nombre \filename{ref.bib}. 
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                REFERENCIAS
%%----------------------------------------------------------
\bibliography{ref}%&lt;-- Archivo de bibliografía (*.bib).
                  % Bibliografía preparada por BibTeX.
                  % Puede especificar más archivos de
                  % bibliografía serapándolos por coma.
                  % Aquí se supone que ref.bib
                  % se encuentra en el mismo directorio
                  % del archivo fuente
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                REFERENCES
%%----------------------------------------------------------
\bibliography{ref}%&lt;-- bibliography's file (*.bib).
                  % This bibligraphy should be
                  % prepared by BibTeX.
                  % You can specify more *.bib files.
                  % ref.bib should be into the same
                  % directory of your source file
%&lt;/tmple&gt;
%    \end{macrocode}
%
% Ahora se especifica el archivo de estilo \filename{*.bst}
% de la bibligrafía. Puede ser cualquier estilo de bibliografía
% estándar como \filename{plain.bst}, \filename{unsrt.bst},
% \filename{abbrev.bst} o \filename{alpha.bst} que vienen por defecto
% en cualquier distribución de \LaTeX.
% Este archivo contiene las instrucciones
% necesarias para que Bib\TeX{} le de el formato necesario
% a las referencias.
% Por ahora la clase \textsf{articleingud} no tiene desarrollado
% un estilo de bibliografía exclusivo para su uso.
%
%    \begin{macrocode}
%&lt;*tmpls&gt;
\bibliographystyle{plain}%&lt;-- Archivo de estilo (*.bst).
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
\bibliographystyle{plain}%&lt;-- Style's file (*.bst).
%&lt;/tmple&gt;
%    \end{macrocode}
%
% \subsection{Biografías de los autores}
%
% Las biografías de los autores se especifican con el ambiente
% |biography|. Hay un (1) ambiente por cada autor.
% Este ambiente tiene dos argumentos: el primero opcional
% y el segundo obligatorio.
%
% En el argumento opcional se especifica la fotografía
% del autor mediante al comando |\includegraphics| del paquete
% |graphicx|. Este comando debe encerrarse entre corchetes
% para evitar que \TeX{} se confunda en la búsqueda de
% argumentos. El uso correcto de este primer argumento
% es en la forma |[{\include...}]|.
%
% En el argumento obligatorio se especifica el nombre del autor.
%  
%    \begin{macrocode}
%&lt;*tmpls&gt;
%%----------------------------------------------------------
%%                BIOGRAFÍAS
%%----------------------------------------------------------
\begin{biography}%
%%[{\includegraphics[width=1in]{fotoautor}}]%&lt;-- Fotografía
                                            % Descomente si necesita
                                            % una fotografía y
                                            % especifique el archivo
                                            % correspondiente
{Nombre Primer Autor}% (Requerido)
Biografía del primer autor.
\end{biography}
\begin{biography}%
%%[{\includegraphics[width=1in]{fotoautor}}]%&lt;-- Fotografía
                                            % Descomente si necesita
                                            % una fotografía y
                                            % especifique el archivo
                                            % correspondiente
{Nombre Segundo Autor}% (Requerido)
Biografía del segundo autor.
\end{biography}
%%
%%   Introducir más biografías si se necesitan
%%
\begin{biography}%
%%[{\includegraphics[width=1in]{fotoautor}}]%&lt;-- Fotografía
                                            % Descomente si necesita
                                            % una fotografía y
                                            % especifique el archivo
                                            % correspondiente
{Nombre último autor}% (Requerido)
Biografía del último autor.
\end{biography}
%&lt;/tmpls&gt;
%&lt;*tmple&gt;
%%----------------------------------------------------------
%%                BIOGRAPHIES
%%----------------------------------------------------------
\begin{biography}%
%%[{\includegraphics[width=1in]{photograph}}]%&lt;-- author's photograph
                                            % Uncomment if
                                            % you need a photograph
{Fist Author Name}% (Required)
Biography of first author.
\end{biography}
\begin{biography}%
%%[{\includegraphics[width=1in]{photograph}}]%&lt;-- author's photograph
                                            % Uncomment if
                                            % you need a photograph
{Second Author Name}% (Required)
Biography of second author.
\end{biography}
%%
%%   Add more biographies as you need.
%%
\begin{biography}%
%%[{\includegraphics[width=1in]{photograph}}]%&lt;-- author's photograph
                                            % Uncomment if
                                            % you need a photograph
{Last Author Name}% (Required)
Biography of last author.
\end{biography}
%&lt;/tmple&gt;
\end{document}
%&lt;/tmpls|tmple&gt;
%    \end{macrocode}
%
% \section{Implementación}
%
% \subsection{Identificación de la clase}
%
% \begin{macro}{\NeedsTeXFormat}
% \begin{macro}{\ProvidesClass}
%
% La clase de documento \textsf{articleingud}
% se creó para usarse con \LaTeXe.
% Con versiones anteriores de \LaTeX{}
% no se garantiza la compatibilidad.
%
%    \begin{macrocode}
%&lt;*cls&gt;
\NeedsTeXFormat{LaTeX2e}%
\ProvidesClass{articleingud}%
[2015/10/10 v0.3 Article for INGENIERIA UD]%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{Preliminares}
%
% \begin{macro}{\ifINGUD@peerreview}
%
% Cuando el artículo se encuentra en proceso de revisión
% por pares es necesario activar o desactivar
% ciertas características de la clase. Por ejemplo,
% imprimir o no el nombre de los autores
% para mantener confidencialidad
% entre autores y revisores.
% |\ifINGUD@peerreview| se usa con este propósito.
% Por defecto inicia en |false| y se pone en
% |true| cuando se especifica la opción
% |peerreview|.
%
%    \begin{macrocode}
\newif\ifINGUD@peerreview\INGUD@peerreviewfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifINGUD@ingudpapersize}
%
% \changes{v0.2}{2012/11/10}{Agregada nueva macro}
% \changes{v0.3}{2015/10/10}{Eliminada macro}
%
% Este comando era necesario
% para especificar el tamaño de papel usado
% por la revista INGENIERIA cuando el usuario especificaba
% la opción |ingudpaper|. Por defecto iniciaba en |false|.
% Fue eliminado de la versión v0.3.
%
%    \begin{macrocode}
%^^A\newif\ifINGUD@ingudpapersize\INGUD@ingudpapersizefalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifINGUD@rightcolauthor}
%
% \changes{v0.2}{2012/11/10}{Agregada nueva macro}
% \changes{v0.3}{2015/10/10}{Eliminada macro}
%
% Este comando era necesario en la versión v0.2 de esta clase.
% Se usaba para posicionar a la derecha la columna de información de
% los autores. Esta columna se ponía por defecto a la izquierda
% de la primera página cuando el usuario especificaba
% la opción |rightcolauthor|. Esta opción fue eliminada de la versión v0.3
%
%    \begin{macrocode}
%^^A\newif\ifINGUD@rightcolauthor\INGUD@rightcolauthorfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifINGUD@correspondenceauthor}
%
% \changes{v0.3}{2015/10/10}{Agregada nueva macro}
%
% Este comando es necesario para identificar al autor de
% correspondencia del artículo. Usualmente este autor
% es único. Se pone a |false| por defecto. Cuando
% se especifica el autor de correspondencia se pone a |true|.
%
%    \begin{macrocode}
\newif\ifINGUD@correspondenceauthor\INGUD@correspondenceauthorfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ifINGUD@endofbiography}
%
% En el ambiente |biography|, en el que se escriben las
% biografías de los autores, es necesario identificar cuándo
% se termina de imprimir la biografía. 
% |\ifINGUD@endofbiography| se usa con el propósito de
% determinar el momento en que el comando |\INGUD@searchpar|,
% el cual ayuda a poner la sangría de párrafo adecuada cuando
% existe una fotografía, debe dejar de operar.
% Por defecto inicia en |true| dado que la biografía ya terminó!!!
%
%    \begin{macrocode}
\newif\ifINGUD@endofbiography\INGUD@endofbiographytrue
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@internalmargin}
% \changes{v0.3}{2015/10/10}{Cambiado valor a 25mm}
% \begin{macro}{\INGUD@externalmargin}
% \changes{v0.3}{2015/10/10}{Cambiado valor a 25mm}
% \begin{macro}{\INGUD@topmargin}
% \changes{v0.3}{2015/10/10}{Cambiado valor a 25mm}
% \begin{macro}{\INGUD@bottommargin}
% \changes{v0.3}{2015/10/10}{Cambiado valor a 25mm}
% \begin{macro}{\INGUD@headmargin}
% \changes{v0.3}{2015/10/10}{Cambiado valor a 15mm}
% \begin{macro}{\INGUD@footmargin}
% \changes{v0.3}{2015/10/10}{Cambiado valor a 15mm}
%
% Estos comandos establecen las márgenes del artículo.
% Todas se miden respecto al borde de la hoja más cercano.
% Todas estas dimensiones se declaran con |\newcommand|
% dado que no es necesario definir registros
% de longitud para guardarlas.
% Por este motivo, cualquier redefinición debe
% hacerse con |\renewcommand|.
% Esto ahorra registros de longitud que pueden
% ser usados por algunos paquetes.
%
% |\INGUD@internalmargin| es la margen interna (impresión por
% ambas caras) o margen izquierda (impresión por una cara).
%
% |\INGUD@externalmargin| es la margen externa (impresión por
% ambas caras) o margen derecha (impresión por una cara).
%
% |\INGUD@topmargin| es la margen superior del texto principal
% medida desde el borde de la hoja.
%
% |\INGUD@bottommargin| es la margen inferior del texto principal
% medida desde el borde de la hoja.
%
% |\INGUD@headmargin| es la margen superior de la cabecera
% del artículo medida desde el borde de la hoja.
%
% |\INGUD@footmargin| es la margen inferior del pie de la página
% del artículo medida desde el borde de la hoja.
%
%    \begin{macrocode}
\newcommand{\INGUD@internalmargin}{25mm}%
\newcommand{\INGUD@externalmargin}{25mm}%
\newcommand{\INGUD@topmargin}{25mm}%
\newcommand{\INGUD@bottommargin}{25mm}%
\newcommand{\INGUD@headmargin}{15mm}%
\newcommand{\INGUD@footmargin}{15mm}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\INGUD@photosep}
%
% |\INGUD@photosep| establece la separación de la fotografía de
% los autores del correspondiente
% texto de la biografía dentro del ambiente |biography|.
% Se define con |\newcommand| y debe redefinirse con |\renewcommand|.
% Por defecto se establece en |5pt|.
%
%    \begin{macrocode}
\newcommand{\INGUD@photosep}{5\p@}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@colauthorinfosep}
% \changes{v0.3}{2015/10/10}{Eliminada macro}
% \begin{macro}{\INGUD@colauthorinfowidth}
% \changes{v0.3}{2015/10/10}{Eliminada macro}
%
% Estos comandos eran necesarios en las versiones v0.1 y v0.2,
% pero fueron eliminadas en la versión v0.3.
% La primera página del artículo en las dos primeras versiones
% tenía una apariencia diferente a la del resto de documento.
% En la primera página se creaba un par de columnas asimétricas.
% La primera de ellas contenía
% la información de los autores del artículo y la fecha de
% recepción, modificación y aceptación del mismo.
% |\INGUD@colauthorinfowidth| medía el ancho de esta primera columna y
% |\INGUD@colauthorinfosep| su separación respecto a la segunda.
% Estos valores se debían establecer como un porcentaje
% del ancho del texto |\textwidth|.
% 
%    \begin{macrocode}
%^^A\newcommand{\INGUD@colauthorinfosep}{\columnsep}%
%^^A\newcommand{\INGUD@colauthorinfowidth}{0.3\textwidth}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\INGUD@reviewname}
% \begin{macro}{\INGUD@reviewvolume}
% \begin{macro}{\INGUD@reviewnumber}
% \begin{macro}{\INGUD@reviewissn}
% \begin{macro}{\INGUD@revieweissn}
%   \changes{v0.3}{2015/10/10}{Agregada nueva macro}
% \begin{macro}{\INGUD@udname}
% \begin{macro}{\INGUD@separator}
%   \changes{v0.3}{2015/10/10}{Modificados los valores de \cs{hskip}}
%
% Estos comandos contienen la información de la revista
% así como del número, volumen e ISSN de la publicación.
% Se debería usar siempre letras en minúscula
% y dar el formato adecuado donde sea necesario.
%
% |\INGUD@reviewname| es el nombre de la revista,
% en este caso INGENIERIA.
%
% |\INGUD@reviewvolume| es el volumen de la revista. Resuelve a
% vacío dado que será cambiado en el momento de la edición
% del artículo. Debería contener solamente el número, por ejemplo
% ``2'', ``3'', ``4'',...
%
% |\INGUD@reviewnumber| es el número de la revista. Resuelve a
% vacío dado que será cambiado en el momento de la edición
% del artículo. Debería contener solamente el número, por ejemplo
% ``2'', ``3'', ``4'',...
%
% |\INGUD@reviewissn| es el número de ISSN de la revista.
% Este número no cambia mucho. Si se desea hacerlo,
% debe hacerse con |\renewcommand|.
%
% |\INGUD@revieweissn| es el número E-ISSN de la revista.
% Este número no cambia mucho. Si se desea hacerlo,
% debe hacerse con |\renewcommand|.
%
% |\INGUD@udname| es el nombre de la universidad.
% Este nombre tampoco cambia mucho. Se se desea hacerlo,
% debe hacerse con |\renewcommand|.
%
% |\INGUD@separator| es un caracter de separación
% para dar formato a la información de la revista en la cabecera
% y pie de página del artículo.
%  
%    \begin{macrocode}
\newcommand{\INGUD@reviewname}{ingenier\'\i a}%
\newcommand{\INGUD@reviewvolume}{}%
\newcommand{\INGUD@reviewnumber}{}%
\newcommand{\INGUD@reviewissn}{0121-750x}%
\newcommand{\INGUD@revieweissn}{2344-8393}%
\newcommand{\INGUD@udname}{universidad distrital
                           francisco jos\'e de caldas}%
\newcommand{\INGUD@separator}{\hskip 2\p@ \@plus 0.5\p@ \@minus 0.5\p@%
                              $\scriptstyle\bullet$%
                              \hskip 2\p@ \@plus 0.5\p@ \@minus 0.5\p@}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\INGUD@reviewinfo}
%
% \changes{v0.2}{2012/11/10}{Agregado \cs{bfseries} a \cs{INGUD@reviewname}}
% \changes{v0.3}{2015/10/10}{Agregado \cs{INGUD@revieweissn}}
%
% |\INGUD@reviewinfo| contiene la información de la revista
% que será impresa en el pie de página del documento.
% Su definición es sencilla. Solamente es una cadena
% con la información del nombre de la revista,
% volumen actual, número actual, número ISSN, número E-ISSN,
% y nombre de la universidad si el artículo no es para
% revisión por pares.
% En caso contrario, solamente es una cadena con
% el nombre de la revista, la palabra ``draft, paper for peer review''
% (borrador, artículo para revisión por pares)
% y el nombre de la universidad.
% Se le da formato al texto dentro de un grupo para
% que sólo afecte a esta información.
%
%    \begin{macrocode}
\newcommand{\INGUD@reviewinfo}{%
\begingroup
  \normalfont\scriptsize\scshape
  {\bfseries\INGUD@reviewname}\INGUD@separator
  \ifINGUD@peerreview
    draft, paper for peer review \INGUD@separator
  \else
    vol.\kern 1\p@   \INGUD@reviewvolume \INGUD@separator
    no.\kern 1\p@    \INGUD@reviewnumber \INGUD@separator
    issn\kern 1\p@   \INGUD@reviewissn   \INGUD@separator
    e-issn\kern 1\p@ \INGUD@revieweissn  \INGUD@separator
  \fi
  \INGUD@udname
\endgroup}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@authorinfo}
%
% |\INGUD@authorinfo| contiene la información de los autores
% que será impresa en la cabecera del documento.
% Resuelve a vacío dado que será cambiada en el
% momento de la edición del artículo.
%
%    \begin{macrocode}
\newcommand{\INGUD@authorinfo}{}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@paperinfo}
%
% |\INGUD@paperinfo| contiene la información del artículo
% (por ejemplo título o subtítulo) que será impresa
% en la cabecera del documento.
% Resuelve a vacío dado que será cambiada en el
% momento de la edición del artículo.
%
%    \begin{macrocode}
\newcommand{\INGUD@paperinfo}{}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@secondtitle}
%
% |\INGUD@secondtitle| contiene la información del 
% título secundario dado al artículo (generalmente en otro idioma)
% y que será establecida por el comando |\title|.
% Por ahora se define para generar un mensaje de error.
%
%    \begin{macrocode}
\newcommand{\INGUD@secondtitle}{%
  \ClassError{articleingud}%
             {No \noexpand\title given}%
             {See documentation for details}}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@citeinfo}
%
% |\INGUD@citeinfo| contiene la información de la cita
% que debe hacerse al presente artículo. Esta información
% se pone en la primera página con el fin de informar
% al lector la manera correcta de citar el presente artículo.
% Esta información se establece con el comando |\INGUDsetciteinfo|.
% Por ahora se define para generar un mensaje de error.
%
%    \begin{macrocode}
\newcommand{\INGUD@citeinfo}{%
  \ClassError{articleingud}%
             {No \noexpand\INGUDsetciteinfo given}%
             {See documentation for details}}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@typeofpaper}
% \changes{v0.3}{2015/10/10}{Agregada macro}
%
% |\INGUD@typeofpaper| contiene la información del tipo de artículo:
% Research/Review/Case-study/Short/Opinion. 
% Resuelve a vacío dado que será cambiada en el
% momento de la edición del artículo.
%
%    \begin{macrocode}
\newcommand{\INGUD@typeofpaper}{}%
%    \end{macrocode}
% \end{macro}
%
% \subsection{Opciones}
%
% \subsubsection{Tamaño de papel}
%
% \DescribeMacro{a4paper}
% (Opción estándar)
% Establece el tamaño del papel en A4 (297~mm x 210~mm).\\
% \DescribeMacro{a5paper}
% (Opción estándar)
% Establece el tamaño del papel en A5 (210~mm x 148~mm).\\
% \DescribeMacro{b5paper}
% (Opción estándar)
% Establece el tamaño del papel en B5 (250~mm x 176~mm).\\
% \DescribeMacro{ingudpaper}
% Esta opción fue introducida en la versión v0.2.
% En la versión v0.3 fue eliminada.
% Establecía el tamaño del papel que usaba la revista INGENIERIA
% (240~mm x 170~mm).\\
% \changes{v0.2}{2012/11/10}{Agregada nueva opción de tamaño de papel ingudpaper}
% \changes{v0.3}{2015/10/10}{Eliminada opción de tamaño de papel ingudpaper}
%    \begin{macrocode}
\DeclareOption{ingudpaper}{%
  \OptionNotUsed
  \ClassWarning{articleingud}%
               {Unused option `\CurrentOption'}}%
%    \end{macrocode}
% \DescribeMacro{letterpaper}
% (Opción estándar por defecto).
% Establece el tamaño del papel en
% carta (11~in x 8.5~in = 279.4~mm x 215.9~mm).\\
% \DescribeMacro{legalpaper}
% (Opción estándar)
% Establece el tamaño del papel en
% oficio (14~in x 8.5~in = 355.6~mm x 215.9~mm).\\
% \DescribeMacro{executivepaper}
% (Opción estándar)
% Establece el tamaño del papel en
% ejecutivo (10.5~in x 7.25~in = 266.7~mm x 184.15~mm).
%
% \subsubsection{Orientación del papel}
%
% \DescribeMacro{landscape}
% (Opción estándar)
% Invierte la orientación del papel a horizontal.\\
% \DescribeMacro{portrait}
% (Opción estándar por defecto).
% Invierte la orientación del papel a vertical.
%
% \subsubsection{Tamaño de letra}
%
% \DescribeMacro{10pt}
% (Opción estándar por defecto).
% Establece el tamaño de letra en 10~pt.\\
% \DescribeMacro{11pt}
% (Opción estándar)
% Establece el tamaño de letra en 11~pt.\\
% \DescribeMacro{12pt}
% (Opción estándar)
% Establece el tamaño de letra en 12~pt.
%
% \subsubsection{Impresión por una o ambas caras}
%
% \DescribeMacro{oneside}
% (Opción estándar defecto).
% Establece la impresión del artículo
% por una cara de la hoja de papel.\\
% \DescribeMacro{twoside}
% (Opción estándar)
% Establece la impresión del artículo
% por ambas caras de la hoja de papel.
%
% \subsubsection{Versión final o borrador del artículo}
%
% \DescribeMacro{draft}
% (Opción estándar)
% Establece el artículo como una versión en borrador.\\
% \DescribeMacro{final}
% (Opción estándar por defecto).
% Establece el artículo como la versión final.
%
% \subsubsection{Página de título}
%
% \DescribeMacro{titlepage}
% (Opción estándar no usada).
% Esta opción es usada por la clase estándar
% \textsf{article}, pero \textsf{articleingud}
% no hace uso de esta opción. 
%
%    \begin{macrocode}
\DeclareOption{titlepage}{%
  \OptionNotUsed
  \ClassWarning{articleingud}%
               {Unused option `\CurrentOption'}}%
%    \end{macrocode}
%
% \noindent
% \DescribeMacro{notitlepage}
% (Opción estándar no usada).
% Esta opción es usada por la clase estándar
% \textsf{article}, pero \textsf{articleingud}
% no hace uso de esta opción. 
%
%    \begin{macrocode}
\DeclareOption{notitlepage}{%
  \OptionNotUsed
  \ClassWarning{articleingud}%
               {Unused option `\CurrentOption'}}%
%    \end{macrocode}
%
% \subsubsection{Impresión a dos columnas}
%
% \DescribeMacro{onecolumn}
% (Opción estándar por defecto)
% Establece el artículo en modo de una columna.\\
% \DescribeMacro{twocolumn}
% (Opción estándar)
% Establece el artículo en modo de dos columnas.
%
% \subsubsection{Numeración de ecuaciones}
%
% \DescribeMacro{leqno}
% (Opción estándar)
% Establece la numeración de las ecuaciones con el número
% a la izquierda. La numeración con el número a la derecha es la
% opción por defecto.
%
% \subsubsection{Justificación de ecuaciones}
%
% \DescribeMacro{fleqn}
% (Opción estándar)
% Establece la justificación de las ecuaciones 
% a la izquierda. La opción por defecto es mostrar las
% ecuaciones centradas.
%
% \subsubsection{Estilo de bibliografía}
%
% \DescribeMacro{openbib}
% (Opción estándar)
% Establece el estilo de la bibliografía en ``abierto''.
% La opción por defecto es una bibliografía ``cerrada''
%
% \subsubsection{Revisión por pares}    
%
% \DescribeMacro{peereview}
% La opción |peereview| se usa durante el proceso
% de revisión por pares. Solamente pone en |true|
% a |\ifINGUD@peerreview|.
%
%    \begin{macrocode}
\DeclareOption{peerreview}{%
  \global\INGUD@peerreviewtrue}%
%    \end{macrocode}
%
% \subsubsection{Información de autores}    
%
% \DescribeMacro{rightcolauthor}
% \changes{v0.2}{2012/11/10}{nueva opción rightcolauthor}
% \changes{v0.3}{2015/10/10}{Eliminada opción rightcolauthor}
% Esta opción era necesaria en la versión v0.2. Fue eliminada de
% la versión v0.3.
% Esta opción ubicaba a la derecha de la primera página 
% la columna de información de los autores.
% La columna se ubicaba por defecto a la izquierda.
% Lo único que hacía era poner |\INGUD@rightcolauthor| en |true|.
% Ahora se genera un mensaje de alerta si el usuario la especifica.
%
%    \begin{macrocode}
\DeclareOption{rightcolauthor}{%
  \OptionNotUsed
  \ClassWarning{articleingud}%
               {Unused option `\CurrentOption'}}%
%    \end{macrocode}
%
% \subsubsection{Opciones por defecto}    
%
% Todas las opciones que no declara la clase \textsf{articleingud}
% se pasan a la clase estándar \textsf{article}.
%
%    \begin{macrocode}
\DeclareOption*{%
  \PassOptionsToClass{\CurrentOption}{article}}%
%    \end{macrocode}
%
% \subsubsection{Procesamiento de opciones y carga de la clase estándar} 
%
% Ahora se procesan las opciones que
% el usuario ha especificado y se carga la clase
% \textsf{article} que forma la base para
% \textsf{articleingud}.
%
%    \begin{macrocode}
\ProcessOptions\relax
\LoadClass{article}%
%    \end{macrocode}
%
% \subsection{Márgenes}
%
% \begin{macro}{\paperheight}
% \changes{v0.2}{2012/11/10}{Modificado \cs{paperheight}
%                            si se especifica la opción ingudpaper
%                            usando la macro \cs{INGUD@ingudpapersize}}
% \changes{v0.3}{2015/10/10}{Eliminada la verificación de \cs{INGUD@ingudpapersize}}
% \begin{macro}{\paperwidth}
% \changes{v0.2}{2012/11/10}{Modificado \cs{paperwidth}
%                            si se especifica la opción ingudpaper
%                            usando la macro \cs{INGUD@ingudpapersize}}
% \changes{v0.3}{2015/10/10}{Eliminada la verificación de \cs{INGUD@ingudpapersize}}
%
% En la versión v0.2, en caso que el usuario hubiera especificado la
% opción |ingudpaper|, se cambiaba el tamaño del papel
% en que sería impreso el artículo.
% Era necesario agregar un |\special| al archivo DVI
% que contiene la información del tamaño del artículo
% para forzar que todos los programas que utilizan el
% |*.dvi| pudieran interpretar correctamente su tamaño.
% 
%
%    \begin{macrocode}
%^^A\ifINGUD@ingudpapersize
%^^A  \setlength{\paperheight}{240mm}%
%^^A  \setlength{\paperwidth}{170mm}%
%^^A  \AtBeginDvi{\special{papersize=170mm,240mm}}%
%^^A\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\headheight}
% \changes{v0.3}{2015/10/10}{Modificado a 12pt}
%
% La altura de la cabecera |\headheight| se establece
% por defecto en |12pt|. Este es tamaño más grande
% de letra permitido en el artículo.
%
%    \begin{macrocode}
\setlength{\headheight}{12\p@}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\voffset}
%
% La longitud |\voffset| se establece por defecto en |0pt|.
% De esta forma la línea imaginaria unicada a |1in+\voffset|
% del borde superior de la hoja queda ubicada a |1in|.
%
%    \begin{macrocode}
\setlength{\voffset}{\z@}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\headsep}
%
% La separación de la cabecera del documento (donde se pone información
% del artículo) respecto al texto principal es |\headsep|.
% Esta distancia debe cumplir con la ecuación
% |\INGUD@headmargin+\headheight+\headsep=\INGUD@topmargin|.
%
%    \begin{macrocode}
\setlength{\headsep}{\INGUD@topmargin}%
\addtolength{\headsep}{-\INGUD@headmargin}%
\addtolength{\headsep}{-\headheight}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\textheight}
%
% La altura del texto principal del artículo (incluyendo
% pies de página) debe cumplir
% |\INGUD@topmargin+\textheight+\INGUD@bottommargin=\paperheight|.
% La dimensión |\paperheight| refleja el tamaño real del
% papel donde se imprime el artículo.
% |\textheight| se calcula para que cumpla esta ecuación.
%
%    \begin{macrocode}
\setlength{\textheight}{\paperheight}%
\addtolength{\textheight}{-\INGUD@topmargin}%
\addtolength{\textheight}{-\INGUD@bottommargin}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\footskip}
%
% La separación del borde inferior del pie de la
% página al borde inferior del texto principal está dado
% por |\footskip|. Esta dimensión cumple con la ecuación
% |\INGUD@footmargin+\footskip=\INGUD@bottommargin|.
%
%    \begin{macrocode}
\setlength{\footskip}{\INGUD@bottommargin}%
\addtolength{\footskip}{-\INGUD@footmargin}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\topmargin}
%
% La línea horizontal imaginaria ubicada a |1in+\voffset| está separada
% del borde superior de la cabecera por |\topmargin|.
% Esta última dimensión se calcula para que cumpla la
% ecuación |1in+\voffset+\topmargin=\INGUD@headmargin|,
% de esta manera la línea imaginaria queda ubicada al inicio del
% borde superior del inicio de la cabecera.
%
%    \begin{macrocode}
\setlength{\topmargin}{\INGUD@headmargin}%
\addtolength{\topmargin}{-1in}%
\addtolength{\topmargin}{-\voffset}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\hoffset}
%
% La longitud |\hoffset| se establece por defecto en |0pt|.
% La línea vertical ubicada en |1in+\hoffset| del borde izquierdo de
% la hoja queda ubicada a |1in|.
%
%    \begin{macrocode}
\setlength{\hoffset}{\z@}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\oddsidemargin}
% \begin{macro}{\evensidemargin}
%
% La longitud |\oddsidemargin| establece las márgenes
% izquierdas (impresión por una sola cara) o márgenes
% internas (impresión por ambas caras) para las
% páginas numeradas impar.
% Esta dimensión debe cumplir con la ecuación
% |1in+\hoffset+\oddsidemargin=\INGUD@internalmargin|.
% |\evensidemargin| es análoga pero para páginas
% numeradas par. Debe cumplir con la ecuación
% |1in+\hoffset+\evensidemargin=\INGUD@externalmargin|.
%
%    \begin{macrocode}
\setlength{\oddsidemargin}{\INGUD@internalmargin}%
\addtolength{\oddsidemargin}{-1in}%
\addtolength{\oddsidemargin}{-\hoffset}%
\setlength{\evensidemargin}{\INGUD@externalmargin}%
\addtolength{\evensidemargin}{-1in}%
\addtolength{\evensidemargin}{-\hoffset}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\textwidth}
%
% El ancho del texto principal (sin incluir las notas al margen
% que se imprimen con |\marginpar|) está dado por |\textwidth|.
% Esta dimensión debe cumplir con 
% |\INGUD@internalmargin+\textwidth+\INGUD@externalmargin=\paperwidth|.
%
%    \begin{macrocode}
\setlength{\textwidth}{\paperwidth}%
\addtolength{\textwidth}{-\INGUD@internalmargin}%
\addtolength{\textwidth}{-\INGUD@externalmargin}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\columnsep}
% \begin{macro}{\columnseprule}
%
% La separación entre columnas |\columnsep| en modo de
% dos columnas se establece por defecto a |5mm|.
% El ancho de la línea de separación |\columnseprule|
% se establece en |0pt| (línea invisible).
%
%    \begin{macrocode}
\setlength{\columnsep}{5mm}%
\setlength{\columnseprule}{\z@}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\marginparpush}
% \begin{macro}{\marginparwidth}
% \begin{macro}{\marginparsep}
%
% Las notas al margen no se usan en esta clase de
% documento. Las dimensiones |\marginparpush|,
% |\marginparwidth| y |\marginparsep| se comentan por ahora.
%
%    \begin{macrocode}
%^^A\setlength{\marginparpush}{\z@}%
%^^A\setlength{\marginparwidth}{\z@}%
%^^A\setlength{\marginparsep}{\z@}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Párrafos}
%
% \begin{macro}{\parskip}
% \begin{macro}{\parindent}
%
% El espacio entre párrafos |\parskip| se establece
% en |0pt| dado que se usa sangría para diferenciar cada
% uno de ellos.
% La sangría de párrafo se establece en |3mm|.
%
%    \begin{macrocode}
\setlength{\parskip}{\z@}%
\setlength{\parindent}{3mm}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\INGUD@hangcarryover}
%
% Este comando se basa en |\hangcarryover|
% dado por Donald Knuth en ``The \TeX Book'' (pág. 316).
% Introduce correctamente el valor apropiado
% de |\hangafter| y |\hangindent| al inicio de cada párrafo
% entre párrafos consecutivos para alojar un objeto
% (por ejemplo una fotografía), dado que el efecto de
% |\hangafter| y |\hangindent| sólo afecta al párrafo actual.
% Este comando es necesario en el ambiente |biography|
% cuando se usa una fotografía del autor para hacer que el texto de
% la misma la rodee. 
% 
%    \begin{macrocode}
\newcommand{\INGUD@hangcarryover}{%
  \edef\INGUD@next{\hangafter=\the\hangafter
                   \hangindent=\the\hangindent}%
  \par\INGUD@next
  \edef\INGUD@next{\prevgraf=\the\prevgraf}%
  \indent\INGUD@next}%
%    \end{macrocode}
% \end{macro}
%
% \subsection{Información del artículo}
%
% \begin{macro}{\title}
% \changes{v0.3}{2015/10/10}{Se agregó un cuarto argumento
%                            que indica el tipo de artículo}
%
% El comando |\title| se comporta de igual forma
% que el comando estándar. A diferencia de su
% contraparte estándar, puede recibir cuatro argumentos:
% el primero opcional, y los otros son
% obligatorios.
% Su uso se debe hacer en las formas
% |\title[titulo corto]{titulo largo}{titulo secundario}{tipo articulo}| o
% |\title{titulo largo}{titulo secundario}{tipo articulo}|.
% Cuando se usa en su primera forma,
% la información de |titulo corto| se pone en la
% cabecera del documento, |titulo largo|
% corresponde al título principal del artículo,
% |titulo secundario| especifica un segundo título
% (generalmente en otro idioma), y |tipo articulo| corresponde
% al tipo de artículo: Research/Review/Case-study/Short/Opinion.
% Si se usa en su segunda forma,
% |titulo largo| se pone como título
% principal y en la cabecera del documento,
% |titulo secundario|  y |tipo articulo| siguen funcionando en la misma forma.
%
% |\title| llama a |\INGUD@titlei| o
% |\INGUD@titleii| dependiendo si se ha especificado
% el argumento opcional.
%
%    \begin{macrocode}
\def\title{\@ifnextchar[\INGUD@titlei\INGUD@titleii}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@titlei}
% \changes{v0.3}{2015/10/10}{Se eliminó el formato al texto en 
%                            \cs{INGUD@paperinfo} para que sea
%                            dado en el lugar indicado.
%                            Se agregó \cs{INGUD@typeofpaper}}
%
% Si se usa 
% |\title[titulo corto]{titulo largo}{titulo secundario}{tipo articulo}|,
% entonces se define |\INGUD@paperinfo| para que sea igual
% al |titulo corto| que será impreso en la cabecera
% del documento, se define |@title| para que sea
% igual a |titulo largo| que será impreso
% como título principal, se define |\INGUD@secondtitle|
% para que sea usado como título secundario y se define
% |\INGUD@typeofpaper| para que sea igual a |tipo articulo|.
%
%
%    \begin{macrocode}
\def\INGUD@titlei[#1]#2#3#4{%
  \gdef\INGUD@paperinfo{#1}%
  \gdef\@title{#2}%
  \gdef\INGUD@secondtitle{#3}%
  \gdef\INGUD@typeofpaper{#4}}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@titleii}
% \changes{v0.3}{2015/10/10}{Se eliminó el formato al texto en 
%                            \cs{INGUD@paperinfo} para que sea
%                            dado en el lugar indicado.
%                            Se agregó \cs{INGUD@typeofpaper}}
%
% Si se ha escrito |\title{titulo largo}{titulo secundario}{tipo articulo}|,
% entonces se definen |\INGUD@paperinfo| y |@title|
% para que contengan la misma información.
% |\INGUD@secondtitle| sigue conteniendo el título
% secundario. |\INGUD@typeofpaper| tiene el tipo de artículo
%
%    \begin{macrocode}
\def\INGUD@titleii#1#2#3{%
  \gdef\INGUD@paperinfo{#1}%
  \gdef\@title{#1}%
  \gdef\INGUD@secondtitle{#2}%
  \gdef\INGUD@typeofpaper{#3}}%
%    \end{macrocode}
%
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\author}
%
% El comando |\author| se comporta de igual forma
% que el comando estándar. A diferencia de su
% contraparte estándar, puede recibir dos argumentos:
% el primero opcional y el segundo obligatorio.
% Este comando se usa en la forma
% |\author[nombre cortos]{nombres largos}| o |\author{nombres}|.
% Cuando se usa en la forma
% |\author[nombre cortos]{nombres largos}|,
% la información de |nombre cortos|
% se pone en la cabecera del documento y |nombres largos|
% corresponde a los nombres (junto con las afilicaciones)
% de los autores del artículo.
% Si se usa |\author{nombres}| entonces |nombres|
% se ponen en la cabecera y en la primera página del artículo.
%
% |\author| llama a |\INGUD@authori| o
% |\INGUD@authorii| dependiendo si se ha especificado
% el argumento opcional.
%
%    \begin{macrocode}
\def\author{\@ifnextchar[\INGUD@authori\INGUD@authorii}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@authori}
% \changes{v0.3}{2015/10/10}{Se eliminó el formato al texto
%                            del primer argumento para que sea
%                            dado en el lugar indicado.
%                            \cs{@author} ahora depende
%                            de la opción peerreview}
%
% Si se especifica |\author[nombre cortos]{nombres largos}|
% y la opción |peerreview| se ha declarado,
% entonces |\INGUD@authorinfo| y |\@author| deben resolver a vacío.
%
%    \begin{macrocode}
\def\INGUD@authori[#1]#2{%
  \ifINGUD@peerreview
    \global\let\INGUD@authorinfo\@empty
    \global\let\@author\@empty
%    \end{macrocode}
%
% Si se especifica |\author[nombre cortos]{nombres largos}|
% y no se ha declarado la opción |peerreview|,
% entonces se define |\INGUD@authorinfo| para que imprima
% la información de los autores |nombre cortos| ignorando
% lo que se haya puesto dentro de |thanks| (usualmente usado
% para las afiliaciones) y se redefine localmente
% |\and| para que sea igual al separador de |\INGUD@separator|.
% |\\| se define para que se comporte igual a un espacio.
% |\@author| se define para que corresponda a la información
% completa de los autores en la primera página del artículo
% incluida su afiliación.
%
%    \begin{macrocode}
  \else
    \gdef\INGUD@authorinfo{\begingroup
                             \let\thanks\INGUD@gobblethanks
                             \let\and\INGUD@separator
                             \let\\\space
                             #1\relax
                           \endgroup}%
    \gdef\@author{#2}%
  \fi}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@authorii}
% \changes{v0.3}{2015/10/10}{Se eliminó el formato al texto
%                            del primer argumento para que sea
%                            dado en el lugar indicado.
%                            \cs{@author} ahora depende de la opción peerreview}
%
% Si se especifica |\author{nombres}|
% y se tiene activa la opción |peerreview|
% entonces |\INGUD@authorinfo| y |\@author| deben resolver a vacío
%
%    \begin{macrocode}
\def\INGUD@authorii#1{%
  \ifINGUD@peerreview
    \global\let\INGUD@authorinfo\@empty
    \global\let\@author\@empty
%    \end{macrocode}
%
% Si se usa |\author{nombres}|
% y no se ha especificado la opción |peerreview|
% entonces se define |\INGUD@authorinfo| y |\@author|
% para que tengan la misma información haciendo lo
% mismo que en el caso anterior.
%
%    \begin{macrocode}
  \else
    \gdef\INGUD@authorinfo{\begingroup
                             \let\thanks\INGUD@gobblethanks
                             \let\and\INGUD@separator
                             \let\\\space
                             #1\relax
                           \endgroup}%
    \gdef\@author{#1}%
  \fi}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\date}
%
% El comando |\date| es necesario para establecer
% la fecha del documento. Esta clase lo usa para
% imprimir la fecha de recibido, modificación y
% aceptación del artículo. Esto se hace
% en el momento de la edición del artículo.
% La definición estándar es suficiente por ahora
% así que se comenta.
%
%    \begin{macrocode}
%^^A\newcommand*{\date}[1]{\gdef\@date{#1}}%
%^^A\date{\today}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\and}
% \changes{v0.3}{2015/10/10}{Se redefine para poner una 
%                            coma seguida de un espacio}
%
% El comando |\and| tiene sentido sólo dentro del comando
% |\author| para separar los diferentes autores del
% artículo. Por ahora se define para poner una coma seguida
% de un espacio.
%
%    \begin{macrocode}
\renewcommand{\and}{,\space}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\thanks}
% \changes{v0.3}{2015/10/10}{Macro redefinida. No hay compatibilidad
%                            con las versiones v0.1 y v0.2.
%                           Ahora acepta tres argumentos. El primero es opcional}
%
% El comando |\thanks| usualmente se usa para
% agregar agradecimientos hacia una persona o institución
% en la publicación de un determinado artículo.
% Esta clase de documento lo usa para indicar las afiliaciones
% de los diferentes autores, así que se debería
% usar un comando |\thanks| por cada autor.
%
% Contrario a su contraparte estándar, este comando
% tiene un argumento opcional y dos obligatorios.
% Cuando se usa sobre un autor en la forma
% |\thanks[correspondencia]{etiqueta}{afiliacion}|,
% identifica de manera única al autor de correspondencia.
% Si se usa dos o más veces en esta forma sobre varios autores,
% solamente el primero de ellos es identificado como de
% correspondencia.
% El argumento opcional |correspondencia| es puesto
% en la parte inferior de los autores. Este argumento debería
% ser un e-mail o una dirección del autor de correspondencia.
% El argumento |etiqueta| es un caracter alfanumérico, por ejemplo,
% ``a--z'' o ``0--9''.
% Este caracter debería identificar de manera única los autores
% que pertenecen a la misma afiliación. Por ejemplo,
% es común que en un artículo aparezcan dos o más autores
% que pertenecen a la misma universidad o al mismo instituto.
% El argumento |afiliacion| corresponde propiamente a la afiliación
% del autor, por ejemplo, el nombre de su universidad.
% Si dos o mas autores comparten la misma |etiqueta|, la información
% de la |afiliación| del primer autor es puesta en la parte inferior
% de los autores.
% El uso en la forma |\thanks{etiqueta}{afiliacion}| es ugual
% a la descrita anteriormente, pero el autor no es
% identificado como autor de correspondencia.
%
% El comando |\thanks| llama a |\INGUD@thanksi| o a |\INGUD@thanksii|.
% 
%    \begin{macrocode}
\def\thanks{\@ifnextchar[\INGUD@thanksi\INGUD@thanksii}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@gobblethanks}
% \changes{v0.3}{2015/10/10}{Macro agregada}
% \begin{macro}{\INGUD@gobblethanksi}
% \changes{v0.3}{2015/10/10}{Macro agregada}
% \begin{macro}{\INGUD@gobblethanksii}
% \changes{v0.3}{2015/10/10}{Macro agregada}
%
% Estas macros se usan para ``comerse'' los argumentos de
% |\thanks|. Deberían tener la misma cantidad de argumentos
% que |\thanks|, sólo que debe desecharse la información que
% reciben. 
%
%    \begin{macrocode}
\def\INGUD@gobblethanks{%
  \@ifnextchar[\INGUD@gobblethanksi\INGUD@gobblethanksii}%
\def\INGUD@gobblethanksi[#1]{\INGUD@gobblethanksii}%
\def\INGUD@gobblethanksii#1#2{}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@thanksi}
% \changes{v0.3}{2015/10/10}{Macro agregada}
%
% El comando |\INGUD@thanksi| es llamado sólo si se ha usado la versión
% con argumento opcional |\thanks[correspondencia]{etiqueta}{afiliacion}|.
% El argumento |#1| corresponde con la información
% de la correspondencia del autor.
% Lo primero que se hace es verificar si existe
% un autor de correspondencia anterior. Si
% es afirmativa la respuesta, se ignora
% la información de correspondencia.
%
%    \begin{macrocode}
\def\INGUD@thanksi[#1]{%
  \ifINGUD@correspondenceauthor\else
%    \end{macrocode}
%
% En caso de que no se haya especificado previamente un
% autor de correspondencia, se procede a poner
% en |true| el comando |\ifINGUD@correspondenceauthor|.
% Luego se agrega un caracter de idenficación (normalmente
% un asterisco) dado por el comando |\INGUD@correspondencechar|
% en la parte superior-derecha del nombre
% del autor. Luego se redefine |\INGUD@correspondenceinfo|
% para que contenga la información de correspondencia del autor.
% 
%    \begin{macrocode}
    \global\INGUD@correspondenceauthortrue
    \@textsuperscript{\normalfont\footnotesize
                      \INGUD@correspondencechar ,}%
    \gdef\INGUD@correspondenceinfo{%
       \@textsuperscript{\normalfont\footnotesize
                         \INGUD@correspondencechar}#1}%
  \fi
%    \end{macrocode}
%
% Finalmente se llama a |\INGUD@thanksii| para que
% procese la información de la etiqueta de autor y su afiliación.
%
%    \begin{macrocode}
  \INGUD@thanksii}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@thanksii}
% \changes{v0.3}{2015/10/10}{Macro agregada}
%
% |\INGUD@thanksii| es llamada para procesar la información de la
% etiqueta (argumento |#1|) y afiliación del autor (argumento |#2|).
%
%    \begin{macrocode}
\def\INGUD@thanksii#1#2{%
%    \end{macrocode}
%
% Lo primero que se hace es revisar si la etiqueta del autor
% ya se encuentra en la lista de etiquetas de autores
% dada por |\INGUD@authorlabel|.
% Si es así, se ignora la información de
% la etiqueta y afiliación, dado que el autor
% debe tener una entrada por parte de otro autor con la misma afiliación.
%
%    \begin{macrocode}
  \if\INGUD@instring{#1}{\INGUD@authorlabel}\else
%    \end{macrocode}
%
% Si la etiqueta del autor no aparece en la lista,
% quiere decir que es un autor con una afiliación diferente
% a la del resto. Primero se verifica si es el
% el primer autor que se va agregar. Si es así, no se
% hace nada, en caso contrario se agrega una coma
% seguida de un espacio en las afiliaciones.
%
%    \begin{macrocode}
      \ifx\INGUD@authorlabel\@empty\else
        \g@addto@macro\@thanks{,\space}%
      \fi
%    \end{macrocode}
%
% En este caso se hace una entrada
% de su etiqueta a la lista y se procede a
% agregar su afiliación a la lista de afiliaciónes
% de los autores dada por |@thanks|. 
%
%    \begin{macrocode}
      \g@addto@macro\INGUD@authorlabel{#1}%
      \g@addto@macro\@thanks{%
         \@textsuperscript{\normalfont\footnotesize#1}#2}%
  \fi
%    \end{macrocode}
%
% Finalmente se imprime la etiqueta del autor
% en la parte superior-derecha de su nombre. 
%
%    \begin{macrocode}
  \@textsuperscript{\normalfont\footnotesize#1}}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@instring}
% \changes{v0.3}{2015/10/10}{Macro agregada}
%
% Este comando busca un caracter (argumento |#1|)
% en una cadena (argumento |#2|).
% Debe ser llamada en la forma
% \begin{oldcomments}
% \if\INGUD@instring{char}{string}
%  codigo si char está en string
% \else
%  codigo si char no está en string
% \fi
% \end{oldcomments}
% Su definición es algo truculenta.
%
%    \begin{macrocode}
\def\INGUD@instring#1#2{\fi\begingroup
  \edef\x{\endgroup\noexpand\in@{#1}{#2}}\x\ifin@}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@correspondenceinfo}
% \changes{v0.3}{2015/10/10}{Macro agregada}
% \begin{macro}{\INGUD@authorlabel}
% \changes{v0.3}{2015/10/10}{Macro agregada}
% \begin{macro}{\INGUD@correspondencechar}
% \changes{v0.3}{2015/10/10}{Macro agregada}
% \begin{macro}{\@thanks}
% \changes{v0.3}{2015/10/10}{Macro redefinida para que resuelva a vacío}
%
% |\INGUD@correspondenceinfo| contiene la información
% del autor de correspondencia. Se define para resolver a vacío.
%
% |\INGUD@authorlabel| contiene una lista de etiquetas
% alfanuméricas de los autores con las mismas afiliaciones
% dentro del artículo. Se define para resolver a vacío.
%
% |\INGUD@correspondencechar| contiene el caracter
% que será impreso en la parte superior-derecha
% del nombre del autor de correspondencia. Este mismo
% caracter se imprime justo antes de la información
% del autor de correspondencia. Se define por defecto
% con el caracter esterico (*)
% 
% |\@thanks| contiene la información de las afiliaciones de
% los diferentes autores. Se define para resolver a vacío.
%
%    \begin{macrocode}
\def\INGUD@correspondenceinfo{}%
\def\INGUD@authorlabel{}%
\def\INGUD@correspondencechar{*}%
\def\@thanks{}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{environment}{titlepage}
%
% Este ambiente se redefine para que resuelva
% a vacío y no tenga algún efecto.
%
%    \begin{macrocode}
\renewenvironment{titlepage}{}{}%
%    \end{macrocode}
% \end{environment}
%
% \begin{macro}{\INGUD@makeciteinfo}
%
% \changes{v0.2}{2012/11/10}{Modificada la justificación del texto.
%                            Ahora depende de \cs{INGUD@rightcolauthor}}
% \changes{v0.3}{2015/10/10}{Macro eliminada}
%
% En las versiones v0.1 y v0.2 era necesaria esta macro.
% En la versión v0.3 fue eliminada.
% |\INGUD@makeciteinfo| se encargaba de darle formato
% a la información de la cita que se ponía en el pie de la primera página.
%
%    \begin{macrocode}
%^^A\newcommand{\INGUD@makeciteinfo}{}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@makeauthorinfo}
%
% \changes{v0.2}{2012/11/10}{Modificada la justificación del texto.
%                            Ahora depende de \cs{INGUD@rightcolauthor}}
% \changes{v0.3}{2015/10/10}{Eliminada macro}
%
% Este comando era necesario en las versiones v0.1 y v0.2.
% En la versión v0.3 fue eliminado.
% En versiones anteriores |\INGUD@makeauthorinfo| le daba formato a la
% información de los autores en la primera página
% ubicada en una columna exclusivamente destinada para esto.
%
%    \begin{macrocode}
%^^A\newcommand{\INGUD@makeauthorinfo}{}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\maketitle}
% \changes{v0.3}{2015/10/10}{Modificada macro. Los cambios no son
%                           compatibles con las versiones v0.1 y v0.2}
%
% |\maketitle| se encarga de crear la página de título
% del artículo. Lo primero que se hace es crear un grupo y una nueva
% página. Se evita que algún flotante quede
% ubicado en la parte superior poniendo |\@topnum|
% a cero y se usa el estilo de página
% |\ps@titlepageingud| sólo para la página
% actual.
%
%    \begin{macrocode}
\def\maketitle{%
\begingroup
  \newpage
  \global\@topnum\z@
  \thispagestyle{titlepageingud}%
%    \end{macrocode}
%
% |\@twocolumn| se pone en |\false| y |\col@number| se pone
% en uno.
%
%    \begin{macrocode}
  \@twocolumnfalse
  \col@number\@ne
%    \end{macrocode}
%
% Ahora se evita el sangrado de la primera línea y se
% imprime el título con el comando |\@maketitle|.
%
%    \begin{macrocode}
  \noindent
  \@maketitle
%    \end{macrocode}
%
% \changes{v0.3}{2015/10/10}{Ahora se vacía \cs{INGUD@typeofpaper}}
%
% Se vacían algunos comandos internos que no se usarán
% más, ahorrando algo de espacio en memoria.
%
%    \begin{macrocode}
  \global\let\@title\@empty
  \global\let\INGUD@secondtitle\@empty
  \global\let\INGUD@correspondenceinfo\@empty
  \global\let\INGUD@correspondencechar\@empty
  \global\let\INGUD@authorlabel\@empty
  \global\let\INGUD@typeofpaper\@empty
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
%    \end{macrocode}
%
% Después de que el título se ha impreso,
% es necesario desvanecer el efecto de los
% comandos |\title|, |\author|, etc, dado
% que sólo son necesarios una vez. 
% Al finalizar se cierra el grupo.
%
%    \begin{macrocode}
  \global\let\maketitle\relax
  \global\let\title\relax
  \global\let\date\relax
  \global\let\INGUDsetciteinfo\relax
  \global\let\INGUDsetvolume\relax
  \global\let\INGUDsetnumber\relax
  \global\let\INGUDsetinitialpage\relax
  \global\let\author\relax
  \global\let\and\relax
  \global\let\thanks\relax
\endgroup}%
%    \end{macrocode}
%
% \begin{macro}{\endmaketitle}
% \changes{v0.3}{2015/10/10}{Modificada macro.
%                            Ya no inicia una nueva página.
%                            Compensa el espacio no usado por la cabecera}
%
% |\endmaketitle| agrega la información de cita del artículo.
% Lo primero que se hace es compensar el espacio tomado
% por la cabecera que no se usa con el estilo
% de página |ps@titlepageingud|.
%
%    \begin{macrocode}
\def\endmaketitle{%
  \@tempdima\INGUD@topmargin
  \advance\@tempdima-\INGUD@headmargin
  \enlargethispage{\@tempdima}%
%    \end{macrocode}
%
% Debido a las características de la clase, la información
% de la cita se pone en un flotante
% ubicado en la parte inferior de la primera página (posiblemente
% esto cambie en el futuro). Lo primero que se hace es revisar
% si se ha especificado la opción |peerreview|. Si es así, no se hace nada,
% en caso contrario se imprime la información de la cita.
%
%    \begin{macrocode}
  \ifINGUD@peerreview\else
    \table[!b]%
      \normalfont\scriptsize
      \INGUD@citeinfo
    \endtable
  \fi
%    \end{macrocode}
%
% Ahora se vacía la información de la cita,
% dado que ya  no será usada en el futuro.
% También se inhabilita |\endmaketitle|.
%
%    \begin{macrocode}
  \global\let\INGUD@citeinfo\@empty
  \global\let\endmaketitle\relax}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@maketitle}
%
% \changes{v0.2}{2012/11/10}{Cambiada justificación de texto.
%                            Ahora depende de \cs{INGUD@rightcolauthor}}
% \changes{v0.3}{2015/10/10}{Modificada macro. Los cambios no
%                           son compatibles con las versiones v0.1 y v0.2}
%
% Este comando se encarga de imprimir toda la información del
% artículo (tipo de artículo, título principal, secundario, autores, etc).
% Esta macro se llama dentro de un grupo para que los cambios sean locales
% y se configuran algunos parámetros de párrafos y
% de tipo de letra. 
%
%    \begin{macrocode}
\def\@maketitle{%
  \normalfont\normalsize
  \parskip\z@
  \parindent\z@
  \raggedright
%    \end{macrocode}
%
% \changes{v0.3}{2015/10/10}{Ahora se imprime \cs{INGUD@typeofpaper}}
%
% Antes del título principal se imprime el tipo de artículo.
%
%    \begin{macrocode}
  {\bfseries\INGUD@typeofpaper\par\nobreak}%
  \vskip 0.5em \@plus 0.1em\@minus 0.1em\nobreak
%    \end{macrocode}
%
% Ahora se imprime el título en tamaño de
% letra |\LARGE| y negrilla.
% Se inicia un nuevo párrafo y se evita que
% exista una ruptura de página en este lugar.
%
% \changes{v0.2}{2012/11/10}{\cs{par}\cs{nobreak} se puso dentro del paréntesis
%                            para finalizar apropiadamente el párrafo
%                            del título y evitar usar el \cs{baselineskip}
%                            del texto normal.
%                            Se eliminó \cs{vskip}}
%
%    \begin{macrocode}
  {\LARGE\bfseries\@title\par\nobreak}%
%    \end{macrocode}
%
% Ahora se imprime el título secundario en tamaño de
% letra |\Large|, sin negrilla y letra inclinada.
% Se inicia un nuevo párrafo y se evita que
% exista una ruptura de página en este lugar.
% Al final se deja algo de espacio vertical para los
% nombres de los autores.
%
% \changes{v0.2}{2012/11/10}{\cs{par}\cs{nobreak} se puso dentro del paréntesis
%                            para finalizar apropiadamente el párrafo
%                            del subtítulo y evitar usar el \cs{baselineskip}
%                            del texto normal. 
%                            Se cambió 1.5em a 0.25em de espaciamiento vertical}
% \changes{v0.3}{2015/10/10}{Se eliminó la negrilla del título secundario}
%
%    \begin{macrocode}
  {\Large\slshape\INGUD@secondtitle\par\nobreak}%
  \vskip 0.25em \@plus 0.1em\@minus 0.1em\nobreak
%    \end{macrocode}
%
% Ahora se imprime la información de los autores en letra
% |\large| y negrilla. Se crea un nuevo párrafo y se deja
% algo de espacio para la información de las afiliaciones
% de los autores.
%
% \changes{v0.3}{2015/10/10}{Se cambió 1.5em a 0.25em}
%
%    \begin{macrocode}
  {\large\bfseries\slshape\@author\par\nobreak}%
  \vskip 0.25em \@plus 0.1em\@minus 0.1em\nobreak
%    \end{macrocode}
%
% Ahora se imprime la información de las afiliaciones
% de los autores en letra tamaño |\footnotesize|.
%
% \changes{v0.3}{2015/10/10}{Ahora imprime las afiliaciones de los autores.
%                            Se cambió 1.5em por 0.25em}
%
%    \begin{macrocode}
  {\footnotesize\@thanks\par\nobreak
   \vskip 0.25em \@plus 0.1em\@minus 0.1em\nobreak
%    \end{macrocode}
%
% Ahora se imprime la información del autor de correspondencia.
%
% \changes{v0.3}{2015/10/10}{Ahora imprime la correspondencia de los autores.
%                            Se cambió 1.5em por 0.25em}
%
%    \begin{macrocode}
   \INGUD@correspondenceinfo\par\nobreak}%
   \vskip 0.25em \@plus 0.1em\@minus 0.1em\nobreak
%    \end{macrocode}
%
% Finalmente se imprime la información de la fecha del artículo.
%
% \changes{v0.3}{2015/10/10}{Ahora imprime la fecha del artículo}
%
%    \begin{macrocode}
  {\centering\scriptsize\@date\par\nobreak}}%
%    \end{macrocode}
% \end{macro}
%
% \subsection{Volumen, número, página inicial e información de cita}
%
% \begin{macro}{\INGUDsetvolume}
% \begin{macro}{\INGUDsetnumber}
% \begin{macro}{\INGUDsetinitialpage}
% \begin{macro}{\INGUDsetciteinfo}
%
% Los comandos |\INGUDsetvolume|, |\INGUDsetnumber|,
% |\INGUDsetinitialpage| y |\INGUDsetciteinfo| están
% destinados para establecer el número de
% volumen, el número de la revista, la página inicial del artículo
% y la información de cita del mismo.
% El argumento de los tres primeros debería ser solamente
% el número, sin agregar ningún tipo de abreviatura
% inicial como ``Vol.'', ``No.'' o ``pág''.
% Por ahora el argumento de |\INGUDsetciteinfo| puede ser arbitario
% y dependerá de la información que el usuario desea
% dar a conocer al lector (posiblemente esto cambie en el futuro).
% Una cita típica puede ser
% ``Newton, Isaac. La ley de gravitación universal.
%   En: Ingeniería. Vol. 1, No. 1, pág 1--10''.
%
%    \begin{macrocode}
\newcommand*{\INGUDsetvolume}[1]{\gdef\INGUD@reviewvolume{#1}}%
\newcommand*{\INGUDsetnumber}[1]{\gdef\INGUD@reviewnumber{#1}}%
\newcommand*{\INGUDsetinitialpage}[1]{\global\setcounter{page}{#1}}%
\newcommand*{\INGUDsetciteinfo}[1]{\gdef\INGUD@citeinfo{#1}}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Resumen estructurado}
%
% \begin{environment}{abstract}
%
% \changes{v0.3}{2015/10/10}{Se centró el nombre del ambiente. Ya no
%                            se usa \cs{section} para escribir el nombre
%                            del ambiente. Ahora se usa \cs{centerline}}
%
%
% El ambiente estándar |abstract| se redefine
% para cumplir con los requerimientos de la revista.
% Por defecto el nombre del ambiente aparece en
% inglés. Si un usuario desea que aparezca en otro
% idioma (por ejemplo español) debe redefinir
% el comando |\abstractname|.
%
% Lo primero que se hace es eliminar
% cualquier espaciamiento vertical anterior al ambiente.
% Se crea nuevo párrafo y se evita romper en ese sitio.
% Luego se agrega espaciamiento vertical ajustable y
% se alienta a \TeX{} (con una penalidad 0)
% a romper página en caso de que no
% haya espacio suficiente para contener todo el resumen
% (posiblemente no sea la mejor solución).
% Se arma un sólo bloque con |\vtop| (esto hace que el resumen
% quede en un sólo paquete y no se rompa entre páginas)
% y se inicia un grupo.
%
%    \begin{macrocode}
\renewenvironment{abstract}{%
  \removelastskip
  \par\nobreak
  \vfil\penalty\z@\vfilneg
  \vtop\bgroup
%    \end{macrocode}
%
% Luego se imprime el título del ambiente con algo de formato al
% texto. 
%
%    \begin{macrocode}
  \normalfont\small
  \centerline{\bfseries\abstractname}}%
%    \end{macrocode}
%
% Al finalizar el ambiente se inicia un nuevo párrafo
% y se finaliza el grupo reajustando la profundidad de la última caja.
%
%    \begin{macrocode}  
  {\par\xdef\tpd{\the\prevdepth}\egroup
   \prevdepth=\tpd}%
%    \end{macrocode}
% \end{environment}
%
% \begin{macro}{\INGUDkeywordsname}
% \changes{v0.3}{2015/10/10}{Macro eliminada}
%
% Este comando era usado en las versiones v0.1 y v0.2.
% En la versión v0.3 fue eliminado para ser
% reemplazado por un resumen estructurado.
%
% |\INGUDkeywordsname| contenía el nombre del
% ambiente |INGUDkeywords|. Si se deseaba que este nombre
% apareciera en otro idioma, sólo era necesario
% redefinirlo usando |\renewcommand|.
%
%    \begin{macrocode}
%^^A\newcommand{\INGUDkeywordsname}{Key words}%
%    \end{macrocode}
% \end{macro}
%
% \begin{environment}{INGUDkeywords}
%
% \changes{v0.2}{2012/11/10}{Cambiado espaciamiento vertical de 0.5\cs{baselineskip}
%                            a 0.25\cs{baselineskip}}
% \changes{v0.3}{2015/10/10}{Eliminado ambiente}
%
% Lo primero que se hacía era eliminar cualquier
% espaciamiento vertical antes del ambiente.
% Se agregaba algo de espacio vertical para separar
% el nombre del ambiente del contenido anterior.
% Después se imprimía el nombre del ambiente 
% dejando un espaciamiento evitando la ruptura en este lugar.
% Al finalizar el ambiente se iniciaba un nuevo párrafo.
%
%    \begin{macrocode}
%^^A\newenvironment{INGUDkeywords}{%
%^^A \removelastskip
%^^A \vskip0.25\baselineskip
%^^A \par\nobreak
%^^A \noindent\textbf{\INGUDkeywordsname}\nobreakspace}{\par}%
%    \end{macrocode}
% \end{environment}
%
% \begin{environment}{INGUDstructured}
%
% \changes{v0.3}{2015/10/10}{Agregado ambiente}
%
% En la versión v0.3 aparece un resumen estructurado que debe tener
% contexto, método, resultados, conclusiones, palabras clave, agradecimientos
% e idioma. El ambiente |INGUDstructured| fue creado con este propósito.
%
% Lo primero que se hace es eliminar cualquier
% espaciamiento vertical antes del ambiente.
% Después se imprime el nombre del ambiente (argumento |#1|)
% dejando un espaciamiento evitando la ruptura en este lugar.
% Al finalizar el ambiente se inicia un nuevo párrafo.
%
%    \begin{macrocode}
\newenvironment{INGUDstructured}[1]{%
 \removelastskip
 \par\nobreak
 \noindent\textbf{#1:}\nobreakspace}{\par}%
%    \end{macrocode}
% \end{environment}
%
% \subsection{Contadores}
%
% \begin{macro}{\thetable}
%
% La presentación del contador |\c@table| se hace
% por medio del comando |\thetable|. Este
% comando se redefine para que las tablas sean
% numeradas con números romanos en mayúscula.
%
%    \begin{macrocode}
\renewcommand{\thetable}{\@Roman\c@table}%
%    \end{macrocode}
% \end{macro}
%
% \subsection{Leyendas}
%
% \begin{macro}{\fnum@figure}
% \begin{macro}{\fnum@table}
%
% Los comandos |\fnum@...| contienen el
% nombre del respectivo flotante que será impreso
% cuando se llame al comando |\caption|.
% Por ahora se comentan y se usa las definiciones estándar
% de \LaTeX. 
%
%    \begin{macrocode}
%^^A\renewcommand{\fnum@figure}{\figurename\nobreakspace\thefigure}%
%^^A\renewcommand{\fnum@table}{\tablename\nobreakspace\thetable}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\abovecaptionskip}
% \begin{macro}{\belowcaptionskip}
%
% Estas longitudes contienen la cantidad de espacio
% en blanco que se agrega arriba y abajo en la leyenda de un flotante.
% Por ahora se establecen en |0pt| para reducir la cantidad de
% espacio vertical que se usa.
%
%    \begin{macrocode}
\setlength{\abovecaptionskip}{\z@}%
\setlength{\belowcaptionskip}{\z@}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@makecaption}
%
% El comando |\caption| llama al comando |\@makecaption|
% para dar formato a la leyenda de los flotantes.
% Recibe dos argumentos: |#1| que es el nombre del
% flotante, por ejemplo ``Figura 2'', y |#2| que es la leyenda
% del mismo. Su definición es básicamente la misma
% que la del núcleo de \LaTeX, a diferencia que
% le da un formato diferente a la leyenda del flotante.
% Se inicia agregando el espaciamiento vertical
% |\abovecaptionskip|.
%
%    \begin{macrocode}
\renewcommand{\@makecaption}[2]{%
  \vskip\abovecaptionskip
%    \end{macrocode}
%
% Luego se mide el largo de la leyenda poniéndola
% en una caja temporal con el tamaño de letra
% establecido en |\footnotesize|.
%
%    \begin{macrocode}
  \sbox\@tempboxa{{\footnotesize\textbf{#1.} #2}}%
%    \end{macrocode}
%
% Ahora se mide al ancho de la caja. Si es más
% larga que el ancho actual |\hsize| entonces se
% imprime la leyenda en un párrafo ordinario.
%
%    \begin{macrocode}
  \ifdim\wd\@tempboxa &gt;\hsize
    {\footnotesize\textbf{#1.} #2 \par}%
%    \end{macrocode}
%
% Si la leyenda cabe en el ancho actual, entonces es necesario centrarla.
% Se reinicia la variable |\@minipagefalse| como en la definición
% estándar. Al final se agrega el espaciamiento
% vertical |\belowcaptionskip|.
%
%    \begin{macrocode}
  \else
    \global\@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}%
%    \end{macrocode}
% \end{macro}
%
% \subsection{Citas}
%
% \begin{macro}{\@citex}
%
% Aquí se modifica el comando |\@citex| del núcleo de
% \LaTeX{} para separar las diferentes citas con |], [|.
% Cuando un usuario especifique |\cite{ref1,ref2,...,refn}|,
% el respectivo texto quedará en la forma
% |[1], [2], ..., [n]|, suponiendo que |ref1| resuelve a
% |[1]|, |ref2| a |[2]| y |refn| a |[n]|. Esto evita que
% \LaTeX{} agrupe las referencias como |[1,2,...,n]|.
%
%    \begin{macrocode}
\def\@citex[#1]#2{%
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{], [}%
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}%
%    \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\citepunct}
% \begin{macro}{\citedash}
%
% El paquete \filename{cite.sty} de Donald Arseneau es inteligente
% y notará que |\citepunct| y |\citedash| ya se encuentran definidos
% y no los definirá de nuevo. El resultado es el
% adecuado ordenamiento de los números de referencia
% y la auto-detección de tres o más referencias:
% |[1], [2], [5]--[7], [12]|.
% Esto también permite especificar una nota adicional,
% es decir, |\cite[nota adicional]{..}|.
% Si |\cite| tiene más de una referencia,
% la nota será aplicada a la última de las referencias listadas.
% Entonces es deseable que si una nota es dada,
% sólo una referencia sea dada en |\cite|.
%
%    \begin{macrocode}
\def\citepunct{], [}%
\def\citedash{]--[}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{Espacios entre flotantes}
%
% \begin{macro}{\floatsep}
% \begin{macro}{\textfloatsep}
% \begin{macro}{\intextsep}
%
% Cuando un flotante se pone en una página con texto,
% estos parámetors controlan la separación entre el flotante
% y los otros objetos sobre la página.
% Estos parámetros se usan para flotantes que ocupan
% una columna en modo de una o dos columnas.
%
% |\floatsep| es el espacio entre flotantes adyacentes
% que son movidos a la parte superior o inferior de la
% página de texto.
%
% |\textfloatsep| es el espacio entre el texto principal
% y los flotantes en la parte superior o inferior del texto.
%
% |\intextsep| es el espacio entre flotantes dentro del texto
% y el texto.
%
%    \begin{macrocode}
\setlength{\floatsep}{\baselineskip}%
\setlength{\textfloatsep}{\baselineskip}%
\setlength{\intextsep}{\baselineskip}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\dblfloatsep}
% \begin{macro}{\dbltextfloatsep}
%
% Cuando los flotantes que se expanden a la totalidad de
% |\textwidth| son puestos sobre una página de texto y
% se está en modo de dos columnas, la separación entre los
% flotantes y el texto se controla con |\dblfloatsep|
% y |\dbltextfloatsep|.
%
% |\dblfloatsep| es el espacio entre flotantes adyacentes
% que se son movidos a la parte superior o inferior de
% la página.
%
% |\dbltextfloatsep| es el espacio entre el texto principal
% y los flotantes en la parte superior o inferior de la
% página.
%
%    \begin{macrocode}
\setlength{\dblfloatsep}{\baselineskip}%
\setlength{\dbltextfloatsep}{\baselineskip}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@fptop}
% \begin{macro}{\@fpsep}
% \begin{macro}{\@fpbot}
%
% Cuando los flotantes son puestos en una página
% de flotantes los espacios entre ellos son controlados por
% estos parámetros. En la parte superior de la
% página se agrega el espacio en blanco |\@fptop| y en la parte
% inferior |\@fpbot|.
% Entre flotantes se agrega |\@fpsep|.
% Estos parámetros se usan para flotantes en modo de una columna
% o para flotantes de una columna en modo de dos columnas.
% (al menosuno de los dos parámetros |\@fptop| y
% |\@fpbot| debería contener un |plus ...fil| para permitir
% rellenar el espacio en blanco restante.)
%
%    \begin{macrocode}
\setlength{\@fptop}{\z@}%
\setlength{\@fpsep}{\baselineskip}%
\setlength{\@fpbot}{\z@ \@plus 1fil}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@dblfptop}
% \begin{macro}{\@dblfpsep}
% \begin{macro}{\@dblfpbot}
%
% Estos parámetros son análogos a los anteriores
% para flotantes de doble columna en modo de dos columnas.
%
%    \begin{macrocode}
\setlength{\@dblfptop}{\z@}%
\setlength{\@dblfpsep}{\baselineskip}%
\setlength{\@dblfpbot}{\z@ \@plus 1fil}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Estilos de página}
%
% \begin{macro}{\ps@plainingud}
%
% \changes{v0.2}{2012/11/10}{Agregado \cs{bfseries} a \cs{thepage}}
% \changes{v0.3}{2012/11/10}{Agregado \cs{normalfont}\cs{footnotesize}
%                            para dar formato a \cs{INGUD@authorinfo} y
%                            \cs{INGUD@paperinfo}}
%
% La definición de este estilo de página es diferente
% para impresión por una cara o doble cara.
%
%    \begin{macrocode}
\if@twoside
  \def\ps@plainingud{%
%    \end{macrocode}
%
% El pie de la página contiene la información del número
% de página impreso por |\thepage| junto con la información
% de la revista impreso por |\INGUD@reviewinfo|
%
%    \begin{macrocode}
      \def\@oddfoot{\INGUD@reviewinfo\hfil{\bfseries\thepage}}%
      \def\@evenfoot{{\bfseries\thepage}\hfil\INGUD@reviewinfo}%
%    \end{macrocode}
%
% La cabecera de la página contiene la información de los autores
% impreso por |\INGUD@authorinfo| y del artículo
% impreso por |\INGUD@paperinfo|. Estas dos informaciones
% se intercambian entre páginas pares e impares.
% Se agrega también una línea horizontal debajo de la
% información de la cabecera.
%
%    \begin{macrocode}
      \def\@oddhead{\vbox{\hb@xt@\textwidth{\hfil
                                            {\normalfont\footnotesize
                                             \INGUD@authorinfo}}%
                          \vskip2\p@
                          \hrule \@height0.4\p@
                                 \@width\textwidth
                                 \@depth\z@}}%
      \def\@evenhead{\vbox{\hb@xt@\textwidth{{\normalfont\footnotesize
                                              \INGUD@paperinfo}%
                                             \hfil}%
                           \vskip2\p@
                           \hrule \@height0.4\p@
                                  \@width\textwidth
                                  \@depth\z@}}%
%    \end{macrocode}
%
% Las definiciones estándar de estilos de página
% hacen |\@mkboth| igual a |\markboth|.
% Aquí se hace lo mismo.
%
%    \begin{macrocode}
      \let\@mkboth\markboth
%    \end{macrocode}
%
% Los estilos estándar usan los comandos
% |\sectionmark| y |\subsectionmark| para que los
% respectivos comandos de título cambien la información de la
% cabecera. Esta no es la situación en esta clase de
% documento. Así que se definen
% para que resuelvan a vacío.
%
%    \begin{macrocode}
    \def\sectionmark##1{}%
    \def\subsectionmark##1{}}%
%    \end{macrocode}
%
% La definición de |\ps@plainingud| para impresión por una cara
% es más simple dado que las páginas pares e impares se tratan
% por igual.
% El código es análogo al presentado anteriormente.
%
%    \begin{macrocode}
\else
  \def\ps@plainingud{% 
    \def\@oddfoot{\INGUD@reviewinfo\hfil{\bfseries\thepage}}%
    \def\@oddhead{\vbox{\hb@xt@\textwidth{\hfil{\normalfont\footnotesize
                                                \INGUD@authorinfo}}%
                        \vskip2\p@
                        \hrule \@height0.4\p@
                               \@width\textwidth
                               \@depth\z@}}%
    \let\@mkboth\markboth
    \def\sectionmark##1{}}%
\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ps@titlepageingud}
%
% \changes{v0.2}{2012/11/10}{Agregado \cs{bfseries} a \cs{thepage}}
% \changes{v0.3}{2015/10/10}{Modificada macro. Los cambios no son compatibles
%                            con las versiones v0.1 y v0.2.
%                            Compensado el espacio usado por la cabecera}
%
% La definición de este estilo de página es diferente
% para impresión por una cara o doble cara.
% Lo primero que se hace es compensar el espacio usado
% por la cabecera, dado que este estilo de página no lo
% usa. Se incrementa |\footskip| en |\headheight+\headsep|.
% Estos dos últimos se llevan a |0pt|.
% Desafortunadamente |\textheight| no se puede modificar
% en este lugar. Toca hacerlo en otro lugar.
% Esto se hace por medio de |\enlargethispage|
% en el lugar adecuado (por ejemplo en |\endmaketitle|).
%
%    \begin{macrocode}
\if@twoside
  \def\ps@titlepageingud{%
  \advance\footskip\headheight
  \advance\footskip\headsep
  \headsep\z@
  \headheight\z@
%    \end{macrocode}
%
% \changes{v0.2}{2012/11/10}{Agregado \cs{INGUD@rightcolauthor} e
%                            incrementado \cs{evensidemargin} también}
%
% El pie de la página contiene la información del número
% de página impreso por |\thepage| junto con la información
% de la revista impreso por |\INGUD@reviewinfo|.
%
% \changes{v0.2}{2012/11/10}{Cambiadas las definiciones de \cs{@oddfoot}
%                            y \cs{@evenfoot}.
%                            Dependen ahora de \cs{INGUD@rightcolauthor}}
%
%    \begin{macrocode}
    \def\@oddfoot{\INGUD@reviewinfo\hfil{\bfseries\thepage}}%
    \def\@evenfoot{{\bfseries\thepage}\hfil\INGUD@reviewinfo}%
%    \end{macrocode}
%
% En la cabecera ya no se pone ninguna información.
% La definición de |\@evenhead| es igual a la de |\@oddhead|.
%
% \changes{v0.2}{2012/11/10}{Cambiadas las definiciones de \cs{@oddhead}
%                            y \cs{@evenhead}.
%                            Dependen ahora de \cs{INGUD@rightcolauthor}}
%
%    \begin{macrocode}
      \def\@oddhead{}%
      \let\@evenhead\@oddhead
%    \end{macrocode}
%
% Las definiciones estándar de estilos de página
% hacen |\@mkboth| igual a |\markboth|.
% Aquí se hace lo mismo.
%
%    \begin{macrocode}
      \let\@mkboth\markboth
%    \end{macrocode}
%
% Los estilos estándar usan los comandos
% |\sectionmark| y |\subsectionmark| para que los
% respectivos comandos de título cambien la información de la
% cabecera. Esta no es la situación en esta clase de
% documento. Así que se definen
% para que resuelvan a vacío.
%
%    \begin{macrocode}
    \def\sectionmark##1{}%
    \def\subsectionmark##1{}}%
%    \end{macrocode}
%
% La definición de |\ps@titlepageingud| para impresión por una cara
% es más simple dado que las páginas pares e impares se tratan
% por igual.
% El código es análogo al presentado anteriormente.
%
%    \begin{macrocode}
\else
  \def\ps@titlepageingud{%
    \advance\footskip\headheight
    \advance\footskip\headsep
    \headsep\z@
    \headheight\z@
    \def\@oddfoot{\hb@xt@\textwidth{\INGUD@reviewinfo
                                    \hfil
                                    {\bfseries\thepage}}}%
    \def\@oddhead{}%
    \let\@mkboth\markboth
    \def\sectionmark##1{}}%
\fi
%    \end{macrocode}
% \end{macro}
%
% \subsection{Bibliografía}
%
% \begin{macro}{\INGUD@thebibliography}
% \begin{macro}{\thebibliography}
% \changes{v0.3}{2015/10/10}{Agregado \cs{parskip}}
%
% El estilo estándar de bibliografía de \LaTeX{}
% no es adecuado para la revista. Es necesario imprimir las
% diferentes entradas en un tipo de letras más pequeño y
% además tener menos separación entre ellas.
% El comando |\INGUD@thebibliography| se define para mantener
% una copia de |\thebibliography|, a la vez que éste último
% se redefine para cumplir con los requerimientos de la revista.
%  
%    \begin{macrocode}
\let\INGUD@thebibliography\thebibliography
\renewcommand{\thebibliography}[1]{%
  \INGUD@thebibliography{#1}%
  \itemsep\z@
  \parsep\z@
  \parskip\z@
  \footnotesize}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{Biografías}
%
% \begin{environment}{biography}
%
% El ambiente |biography| tiene dos definiciones dependiendo
% si se ha especificado la opción |peerreview|.
%
% Si se está en modo de revisión por pares es necesario
% convertir el ambiente en un ambiente de ``comentarios''
% e ignorar todo el texto dentro de la biografía.
% Esto es con el fin de eliminar toda la información del autor
% por confidencialidad.
%
% |\biography| se define con los comandos internos
% |\let\do\@makeother| y |\dospecials| (ver ltmiscen.dtx para
% más detalles). Luego llama al comando |\INGUD@clearbiography|
% el cual ignora todo el texto de la biografía.
%
%    \begin{macrocode}
\ifINGUD@peerreview
  \def\biography{%
    \let\do\@makeother
    \dospecials
    \INGUD@clearbiography}%
%    \end{macrocode}
%
% |\endbiography| se define para que resuelva a vacío.
%
%    \begin{macrocode}
  \def\endbiography{}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@clearbiography}
%
% Ahora es necesario definir |\INGUD@clearbiography|.
% Se declara para que interprete su argumento |#1|
% como todo lo que se encuentra encerrado entre
% |\begin{biography}| y |\end{biography}| e ignorarlo.
% Para esto es necesario decirle a \TeX{}
% que el argumento finaliza cuando encuentra el
% comando |\end{biography}|.
% Es necesario cambiar el código de categoría (dentro de un grupo
% para que los cambios sean locales) de los caracteres
% |{|, |}| y |\| para que sean tratados como ``otros'' caracteres
% y remplazarlos temporalmente por los
% caracteres |[|, |]| y \verb+|+.
% La definición de |\INGUD@clearbiography| sólo llama
% a |\end{biography}|.
%
%    \begin{macrocode}
\begingroup
  \catcode`[=1   \catcode`]=2   \catcode`|=0
  \catcode`\{=12 \catcode`\}=12 \catcode`\\=12
  |long|gdef|INGUD@clearbiography#1\end{biography}[|end[biography]]%
|endgroup
%    \end{macrocode}
% \end{macro}
%
% Si no se está en modo de revisión por pares es necesario imprimir
% el contenido de la biografía.
% Primero se inicia eliminando cualquier espaciamiento vertical
% que se haya adicionado anteriormente.
%
%    \begin{macrocode}
\else
  \def\biography{%
    \removelastskip
%    \end{macrocode}
%
% Luego se motiva a \TeX{} a romper la página en este sitio
% si es necesario poniendo |\@highpenalty|.
%
%    \begin{macrocode}
    \addpenalty\@highpenalty
%    \end{macrocode}
%
% |\biography| tiene dos argumentos: |#1|, que es opcional,
% donde se especifica una fotografía
% encerrando el argumento entre los caracteres |[]|,
% y |#2|, que es obligatorio,  donde se especifica el nombre del autor
% usando los caracteres |{}|.
%
% Si lo que sigue es el caracter |[| entonces se llama
% a |\INGUD@biographyphoto| que
% prepara una biografía con foto.
% En caso contrario se llama al comando |\INGUD@biographynophoto|
% para preparar una biografía sin foto.
%
%    \begin{macrocode}
    \@ifnextchar[\INGUD@biographyphoto\INGUD@biographynophoto}%
%    \end{macrocode}
%
% |\endbiography| se define para resuelva a |\par|.
%
%    \begin{macrocode}
  \def\endbiography{\par}%
%    \end{macrocode}
%
% \begin{macro}{\INGUD@biographyphoto}
%
% Este comando es llamado por el ambiente |biography|
% cuando se necesita una biografía con foto.
%
% Se inicia dándole formato al nombre del autor especificado en |#2|.
% Se inicia un nuevo párrafo evitando que \TeX{} rompa la página en
% este sitio y eitando que sangre la primera línea del nuevo párrafo.
% Se cambia el tipo de letra a |\footnotesize| que será la
% letra que se use en la biografía.
% Se pone |\ifINGUD@endofbiography| en |false| para indicar que
% no se ha llegado al final de la biografía con foto.
%
%    \begin{macrocode}
  \def\INGUD@biographyphoto[#1]#2{%
    \INGUD@biographyauthorname{#2}%
    \par \nobreak \noindent
    \normalfont \footnotesize
    \global\INGUD@endofbiographyfalse
%    \end{macrocode}
%
% Ahora es necesario medir el tamaño de la fotografía dada en |#1|.
% Para esto se pone en una caja temporal y su ancho
% se asigna a la variable temporal |\@tempdima|.
% Esta última variable se incrementa en una cantidad
% igual a |\INGUD@photosep|, el cual es el espacio extra
% en blanco que rodea la fotografía.
% 
%    \begin{macrocode}
    \sbox\@tempboxa{#1}%
    \@tempdima\wd\@tempboxa
    \advance \@tempdima by \INGUD@photosep
%    \end{macrocode}
%
% Ahora es necesario medir la altura total (altura+profundidad)
% y asignársela a la variable temporal |\@tempdimb|.
% De igual forma se incrementa esta altura en una cantidad igual
% a |\INGUD@photosep|.
% 
%    \begin{macrocode}
    \@tempdimb\ht\@tempboxa
    \advance \@tempdimb by \dp\@tempboxa
    \advance \@tempdimb by \INGUD@photosep
%    \end{macrocode}
%
% Ahora es necesario conocer la cantidad de líneas
% de texto que se dejarán con sangría para alojar
% la fotografía del autor.
% Para esto se realiza un simple cálculo dividiendo
% la altura total de la fotografía entre el salto de
% línea base |\baselineskip|.
% Esta división guardará el valor (número real)
% en |\@tempdimb|.
% Al asignar |\@tempdimb| al contador (variable entera)
% |\@tempcnta| los decimales se descartan,
% esto trae el efecto de redondeo por abajo
% (análogo a lo que hace la función |floor| en un lenguaje de programación). 
% 
%    \begin{macrocode}
    \divide \@tempdimb by \baselineskip
    \@tempcnta\@tempdimb
%    \end{macrocode}
%
% Ahora establece el valor de la sangría del párrafo
% presente |\hangindent| en las primeras |\@tempcnta|
% líneas haciendo uso de |\hangafter|.
% El signo negativo de |\@tempcnta|
% indica que se sangrarán las líneas de texto de
% arriba hacia abajo (ver \TeX Book para más detalles).
% El efecto de |\hangindent| y |\hangafter| se hará
% extensivo a otros párrafos (si los hay) por medio
% del comando |\INGUD@hangcarryover|. 
% 
%    \begin{macrocode}
    \hangindent\@tempdima
    \hangafter-\@tempcnta
%    \end{macrocode}
%
% Ahora se llama a |\INGUD@checkendofbiography| para que
% realice un escaneo hasta encontrar el final de la
% biografía. Esto es necesario dado que la biografía
% puede contener varios párrafos (necesario detectarlos)
% u otros ambientes. Entonces es necesario conocer
% su finalización exacta. 
% |\INGUD@checkendofbiography| funciona leyendo
% el texto que le sigue hasta encontrar un
% |\end{biography}| correcto.
% 
%    \begin{macrocode}
    \INGUD@checkendofbiography
%    \end{macrocode}
%
% Localmente se define |\INGUD@searchpar| para que detecte
% la aparición del primer párrafo.
% Si se encuentra este párrafo y |\ifINGUD@endofbiography|
% es |true| (final de la biografía) se finaliza el párrafo con |\par|
% y con |\null| (este |\null| parace ser necesario para evitar que
% la fotografía de un autor se solape con la siguiente
% cuando la biografía no alcanza a rodear toda la fotografía),
% de lo contrario se llama a |\INGUD@hangcarryover| para
% actualizar el valor correcto de |\hangindent| y |\hangafter|
% y luego se sigue buscando la presencia de un nuevo
% párrafo.
%
%    \begin{macrocode}
    \def\INGUD@searchpar##1\par{##1\ifINGUD@endofbiography
                                     \par\null
                                   \else
                                     \INGUD@hangcarryover
                                     \csname INGUD@searchpar\endcsname
                                   \fi}%
%    \end{macrocode}
%
% Esta es la primera llamada de |\INGUD@searchpar|
%
%    \begin{macrocode}
    \INGUD@searchpar
%    \end{macrocode}
%
% Ahora imprime la fotografía que había sido guardada en
% |\@tempboxa| en el lugar adecuado.
% Para esto es necesario crear una caja de
% ancho |0pt|, altura |\baselineskip| y profundidad
% |0pt|. Luego de imprimir la fotografía
% se ignora cualquier espacio en blanco que se
% haya dejado entre la fotografía y el texto de la
% biografía.  
% 
%    \begin{macrocode}
    \hb@xt@\z@{\hss
               \vbox to\baselineskip{\box\@tempboxa
                                     \hrule \@width\z@
                                            \@height\z@
                                            \@depth\z@}%
               \hskip\INGUD@photosep}%
    \ignorespaces}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@biographyauthorname}
%
% El comando |\INGUD@biographyauthorname| se encarga de
% darle formato al nombre del autor dentro de la biografía.
% Recibe como argumento el nombre del autor en |#1|.
%
% Lo primero que se hace es crear un grupo para
% que los cambios sean locales.
% Se pone la sangría y el salto de párrafo a |0pt|.
% Se inicia un nuevo párrafo evitando que \TeX{}
% rompa en este sitio.
%
%    \begin{macrocode}
  \newcommand{\INGUD@biographyauthorname}[1]{%
    \begingroup
    \parindent\z@ \parskip\z@
    \par \nobreak
%    \end{macrocode}
%
% Luego se guarda el nombre
% en una caja temporal con el formato adecuado para medir su ancho.
% Si este ancho es más largo que el ancho actual 
% entonces se pone una línea horizontal |\vrule| de
% ancho igual a |\hsize|.
%
%    \begin{macrocode}
    \sbox\@tempboxa{\normalfont\bfseries #1}%
    \ifdim\wd\@tempboxa &gt;\hsize
      \vrule \@width\hsize
             \@height 0.4\p@
             \@depth\z@
%    \end{macrocode}
%
% Si el ancho del nombre es menor al ancho actual
% entonces se pone una línea horizontal |\vrule|
% de ancho igual al de la caja que contiene el nombre.
%
%    \begin{macrocode}
    \else
      \vrule \@width\wd\@tempboxa
             \@height 0.4\p@
             \@depth\z@
    \fi
%    \end{macrocode}
%
% Luego se crea un núevo párrafo evitando un rompimiento de página.
% Se imprime el nombre del autor y se crea un nuevo párrafo
% sin que haya un rompimiento de página.
% Al final se agrega algo de espacio vertical y se cierra el grupo
%
%    \begin{macrocode}
    \par\nobreak
    {\normalfont\bfseries #1}\par\nobreak
    \vskip 5\p@
  \endgroup}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@checkendofbiography}
%
% |\INGUD@checkendofbiography| es quizás uno de los comandos
% más complejos de la clase \textsf{articleingud}.
%
% Su funcionamiento consiste en escanear lo que le sigue hasta
% encontrar un primer comando |\end|. Todo lo que está entre
% |\INGUD@checkendofbiography| y |\end| se considera su primer argumento.
% Seguido de |\end| se encuentra su segundo argumento.
% La definición debe ser |\long| dado que |#1| puede estar compuesto de
% varios párrafos.
% 
%    \begin{macrocode}
  \long\def\INGUD@checkendofbiography#1\end#2{%
%    \end{macrocode}
%
% Se definen localmente |\INGUD@biographyname| y |\INGUD@secondargument|
% que serán utilizados para determinar si después del
% |\end| encontrado se tiene un |\end{biography}|.
%
%    \begin{macrocode}
    \def\INGUD@biographyname{biography}%
    \def\INGUD@secondargument{#2}%
%    \end{macrocode}
%
% Si |#2=biography| entonces se hace |INGUD@keepchecking|
% para que sea igual a |\relax| y se define
% |\INGUD@firstargument| para que contenga el
% primer argumento de |\INGUD@checkendofbiography| seguido
% de |\ifINGUD@endofbiography| puesto a |true| seguido de
% una finalización de párrafo necesaria para
% |\INGUD@searchpar|.
%
%    \begin{macrocode}
    \ifx\INGUD@biographyname\INGUD@secondargument
      \global\let\INGUD@keepchecking\relax
      \long\gdef\INGUD@firstargument##1{%
        ##1\global\INGUD@endofbiographytrue\par}%
%    \end{macrocode}
%
% Si |#2!=biography| entonces se hace |INGUD@keepchecking|
% para que sea igual a |\INGUD@checkendofbiography| y se define
% |\INGUD@firstargument| para que contenga el
% primer argumento de |\INGUD@checkendofbiography|.
%
%    \begin{macrocode}
    \else
      \global\let\INGUD@keepchecking\INGUD@checkendofbiography
      \long\gdef\INGUD@firstargument##1{##1}%
    \fi
%    \end{macrocode}
%
% Ahora se imprime el primer argumento de |\INGUD@checkendofbiography|,
% seguido de una definición a vacío de éste.
% Es necesario finalizar el ambiente que se había escaneado
% con |\INGUD@checkendofbiography| y que no se cerró.
%
%    \begin{macrocode}
    \INGUD@firstargument{#1}%
    \global\let\INGUD@firstargument\@empty
    \end{#2}%
%    \end{macrocode}
%
% Finalmente se continúa escaneando en busca de un |\end{biography}|
% correcto en caso de que no se haya encontrado.
%
%    \begin{macrocode}
    \INGUD@keepchecking}%
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\INGUD@biographynophoto}
%
% Este comando es llamado por el ambiente |biography|
% cuando se necesita una biografía sin foto.
% Su única función es imprimir el nombre del autor
% dado en su único argumento |#1| y cambiar el
% tipo de letra a |\footnotesize|.
% El párrafo donde inicia la biografía comienza sin sangría
% y se ignora cualquier espacio en blanco que
% se haya dejado.
%
%    \begin{macrocode}
  \def\INGUD@biographynophoto#1{%
    \INGUD@biographyauthorname{#1}%
    \par \nobreak \noindent
    \normalfont \footnotesize \ignorespaces}%
\fi
%    \end{macrocode}
% \end{macro}
% \end{environment}
%
% \subsection{Tipo de letra}
%
% \begin{macro}{\sfdefault}
% \changes{v0.2}{2012/11/10}{Agregada nueva macro para cambiar letra a TIMES}
% \begin{macro}{\rmdefault}
% \changes{v0.2}{2012/11/10}{Agregada nueva macro para cambiar letra a TIMES}
% \begin{macro}{\ttdefault}
% \changes{v0.2}{2012/11/10}{Agregada nueva macro para cambiar letra a TIMES}
%
% Se redefinen los comandos |\sfdefault|, |\rmdefault|
% y |\ttdefault| para cambiar el tipo de letra del
% documento a letra TIMES. Este tipo de letra será usada
% por defecto por la clase. 
%
%    \begin{macrocode}
\renewcommand{\sfdefault}{phv}%
\renewcommand{\rmdefault}{ptm}%
\renewcommand{\ttdefault}{pcr}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Inicialización}
%
% Ahora es necesario inicializar el estilo
% de página a |ps@plainingud|, el cual
% será el estilo que se adopte por defecto.
%
%    \begin{macrocode}
\pagestyle{plainingud}%
%&lt;/cls&gt;
%    \end{macrocode}
%
% \Finale
%
\endinput</pre></body></html>