Está en la página 1de 286

Elaboración de una clase en

para digitar la tesis de pre-grado


en la Facultad de Ciencias

R. Ipanaqué, G. González y G. Crespo

Instituto de Investigación y Promoción para el desarrollo de la


Universidad Nacional de Piura http://www.unp.edu.pe/institutos/iipd
ELABORACIÓN DE UNA CLASE EN

PARA DIGITAR LA TESIS DE PRE-GRADO


EN LA FACULTAD DE CIENCIAS

R. IPANAQUÉ
G. GONZÁLEZ
G. CRESPO
FACULTAD DE CIENCIAS
UNIVERSIDAD NACIONAL DE PIURA
PIURA, PERÚ
Título:

Elaboración de una clase en LATEX para digitar la Tesis de pre-grado en la Facultad


de Ciencias

Autores:

ROBERT IPANAQUÉ CHERO


robertchero@hotmail.com
http://www.unp.edu.pe/pers/ripanaque
https://sites.google.com/site/ripanaque

GUILLERMO C. GONZÁLEZ CREOLLO


gmogonzalez@gmail.com
http://www.unp.edu.pe/pers/ggonzalez

GLORIA S. CRESPO GUERRERO


gloriasol48@hotmail.com

INSTITUTO DE INVESTIGACIÓN Y PROMOCIÓN PARA EL DESARROLLO (iipd)

Junio, 2011

UNIVERSIDAD NACIONAL DE PIURA


Urb. Miraores s/n, Castilla, Piura, PERÚ
Prólogo

AT X, sino que constituye la


Este libro no pretende ser un manual de L E

presentación y manual ocial de la clase Fc Unp creada por los autores

con la nalidad de dotar a los estudiantes de la Facultad de Ciencias, de

la Universidad Nacional de Piura, de una herramienta que facilite el uso

AT X en la digitación de la Tesis de pregrado.


de L E

En el primer capítulo se dan los lineamientos elementales en el uso de las

AT X y que son ampliamente utilizadas para elaborar


clases estándar de L E

diversos trabajos cientícos, a saber: article, report y book. Además

se describe los comandos básicos, que se utilizan en cualquiera de dichas

clases, y que sirven para dar formato al texto, insertar y editar fórmulas

matemáticas, manipulación de listas, insertar grácos, insertar tablas, etc.

El segundo capítulo esta dedicado a la clase beamer. En este capítulo se


hace un breve recuento de los temas, combinaciones de colores, entornos,

etc. más utilizados en la clase beamer. De esta manera se motiva al lector


AT X.
para que elabore sus presentaciones con L E

Una vez que el lector se ha familiarizado con las clases y comandos

tratados en los dos primeros capítulos, en el tercer capítulo se hace una

AT X con la
breve descripción de los elementos de la programación en L E

nalidad que el lector aprecie la potencia del mismo.

Finalmente, en el cuarto capítulo, se describen los comandos de la cla-

se creada, a la que se le ha llamado Fc Unp , mostrando con un ejemplo


especíco los resultados que se obtienen en forma automatizada tanto en

formato como en el color del empaste (esto permite que el estudiante ob-

i
tenga un archivo PDF de calidad profesional, el cual incluye hipervínculos,

referencias y marcadores, todos éstos interactivos).

R. Ipanaqué
G. González
G. Crespo

Piura, Perú

ii
Contenido

Prólogo i
Capítulo 1:Introducción a LATEX 1
Introducción a la edición de textos con LATEX 1
Instalación de TEX/LATEX 10
El editor libre TEXMAKER 16
Instrucciones básicas de LATEX 28
Estructura de los documentos LATEX 31
Documentos básicos más utilizados 32
Paquetes 46
El paquete babel 54
El paquete inputenc 55
El paquete geometry 55
Formato de página 56
Edición de texto 57
Matemática 66
Listas 90
Inclusión de grácos 99
Tablas 103
Referencias cruzadas 113
Notas al pie y al margen 117
Inserción de texto plano 119
Bibliografía 120

iii
El programa BibTex 123
Capítulo 2:La clase beamer 128
Esquema general 128
Comandos y entornos importantes en la clase beamer 129
Primeros pasos 129
Temas 130
Temas estándar beamer 134
Temas menores 134
Personalizar temas 135
Modicación de color con structure 136
Especicación de colores con RGB 136
Uso directo del color almacenado en structure 139
Cambio de los marcadores de entornos de lista 140
Cajas redondeadas y sombras 140
Deshacerse de los iconos de navegación 141
Adición de una footline informativo 141
La portada 142
Inclusión de grácos 146
Overlays 148
Navegar con hipervínculos 151
Teoremas y relacionados 154
División de una diapositiva en columnas 158
Alineación vertical en las diapositivas 165
El tamaño de fuente por defecto 167
El color de texto predeterminado 167
Fuentes y estilos de letras 168
Contracción de diapositivas 171
Cambio de anchos de margen 171
Texto de color, fondos y cajas 174
Bibliografía 176

iv
Capítulo 3:Programación con LATEX 178
Creación de comandos y entornos 178
Entornos 180
Compilación por partes 182
Conceptos básicos sobre contadores y longitudes 184
Programación con TEX 197
Manejo de cajas en TEX 202
Repetición de objetos 212
Sistematizando tareas 214
Condicionales y bucles 215
Capítulo 4:La clase FcUnp 228
Introducción 228
Cómo invocar la clase FcUnp 229
Comandos implementados 229
Paquetes incorporados 231
Un ejemplo especíco 232
Obtención de la clase FcUnp 235
Código de la clase FcUnp 244
Conclusiones 273
Recomendaciones 274
Bibliografía 275

v
vi
1 Introducción a LATEX

1 Introducción a la edición de textos con LATEX

1.1 Conceptos referentes a TEX/LATEX

¾Qué es TEX?

1
TEX es un sistema de composición de textos de alta calidad que fue creado

por Donald E. Knuth a nales de la década de 1970; está dirigido en par-

ticular a aquéllos textos que contienen una gran cantidad de expresiones

matemáticas. TEX en sí es un procesador de macros, con una alta capa-

cidad de programación, un archivo *.tex es un archivo ASCII donde está

el texto junto con determinadas instrucciones, que debe ser procesado por

un compilador (el programa TEX). Éste devuelve un archivo *.dvi que es

independiente de la plataforma y que es el que nalmente se transformará

al lenguaje de impresora.

Utilizar TEX puro reviste una cierta dicultad, por lo que Knuth su-

ministró una serie de macros para TEX a las que se denominó plain TEX.

Estas macros son el conjunto mínimo de macros que se pueden utilizar de

forma ecaz con TEX e incluyen algunos ejemplos de uso de órdenes TEX

de alto nivel. Cuando alguien arma programar en TEX normalmente se

reere a que lo hace en plain TEX.

1 El nombre TEX representa el prejo τ εχ (tau épsilon chi), que signica arte.

1
¾Qué es LATEX?

AT X es un paquete de macros para T X originalmente escrito por Leslie


L E E

Lamport para proporcionar un sistema de procesamiento de documentos

AT X proporciona
más simple de uso que TEX pero con toda su potencia. L E

una serie de órdenes para describir la estructura del documento, de forma

que el usuario nal no deba pensar mucho en la presentación. Mediante

distintas clases de documentos y paquetes adicionales, el mismo documento

puede producirse con muchos diferentes aspectos.

¾Qué son los paquetes AMS-TEX/AMS-LATEX?

AMS-TEX es un paquete de macros para TEX. Escrito originalmente por

Michael Spivak para la Sociedad Americana de Matemática (AMS) entre

1983 y 1985. Está basado en plain TEX pero proporciona más medios para

producir fórmulas matemáticas de aspecto profesional con menor esfuerzo

por parte de los autores, con un gran cuidado en aspectos como el tamaño

y la posición de las fórmulas. Entre los aspectos tratados se encuentran las

ecuaciones de más de una línea, la numeración de ecuaciones, las matrices,

los acentos dobles, sub y super índices en varios niveles, así como otras

AT X la AMS desarrolló
cosas. Según fue aumentando la popularidad de L E

AMS-LATEX que consiste en una colección de clases y paquetes para LATEX


que ofrece a los autores la funcionalidad de AMS-TEX.

Clases de usuarios que utilizan TEX/LATEX en la creación de sus docu-


mentos

TEX- nico Conocedor de todas las minucias, argucias y misterios de TEX.

TEX- perto Persona familiarizada con los comandos básicos de TEX ca-
paz de programar rutinas o macros TEX.

TEX- nócrata Persona que ha asimilado la losofía TEX y que usa re-

AT X pero que no conoce o no tiene interés en el


gularmente TEX o L E

funcionamiento interno del lenguaje TEX.

2
1.2 ¾Qué ventajas tiene TEX/LATEX?

Funciona, es estable y multiplataforma

El formato de los archivos es mucho más estable que en otros procesa-

dores, cualquier cambio es realizado localmente y no repercute en efectos

colaterales, existen implementaciones para distintas plataformas y en to-

das el resultado es exactamente el mismo (si se tienen los mismos estilos

y tipos). Excelente calidad del documento nal con salida en distintos

formatos: dvi, pdf, ps, etc.

Alta calidad en la edición de ecuaciones

AT X es ampliamente utiliza-
Esta es una razón muy importante por la que L E

do en entornos cientícos. Muchas revistas aceptan o exigen los documen-

AT X. Este procesador ajusta los tamaños de paréntesis,


tos escritos en L E

integrales, subíndices y superíndices, alinea los elementos de las matrices,

construye cajas, etc.

LATEX permite redactar fácilmente documentos estructurados

A través de distintas clases de documento y de su conjunto de macros,

AT X posibilita escribir textos dividiéndolos en capítulos, secciones, sub-


L E

secciones, controlando en todo momento la numeración y las referencias

cruzadas. Construye índices de contenidos, tablas o guras. Ajusta los

tamaños y tipos de letras según la parte del documento en que se hallen.

Facilidad en la construcción de macros y órdenes

A poco de comenzar a usar este procesador, el usuario se encuentra de-

niendo o redeniendo órdenes para que éstas se ajusten a sus preferencias

personales. Por ejemplo, es posible que una determinada expresión apa-

rezca repetidas veces en el texto. Nada más fácil que denir una orden que

reemplace a todo un bloque. O bien, es posible que no guste la forma en

AT X numera las páginas, una redenición al principio del documento


que L E

permite cambiar esto.

3
Se escribe en ASCII

Esto, que al principio puede parecer un inconveniente (ya que implica

teclear mucho más) se torna en ventaja al cabo del tiempo. Por un lado

permite incrementar la velocidad de escritura (pues no hay que andar

utilizando ratón o menús), por otro facilita el uso de cualquier editor de

texto (no contiene caracteres de control) y permite su transmisión por

correo electrónico (puede escribirse en ASCII de 7 bits). Esto hace que

AT X enviados
muchas revistas cientícas admitan artículos escritos en L E

por e-mail. Ellos lo procesan en el lugar de destino, hacen los cambios

necesarios y lo imprimen.

Es gratis

Porque Knuth lo decidió así, y no parece molestarle que otros ganen di-

nero vendiendo productos y servicios basados en TEX. De hecho, aunque

algunas herramientas que se usan junto a TEX se ofrecen bajo la GNU

General Public License (Copyleft); TEX en sí, ni siquiera tiene esa restric-

ción. La única restricción impuesta por Knuth es que debe dar el mismo

resultado en todas las implementaciones, para garantizar la absoluta por-

tabilidad de los documentos escritos con TEX. Algunas empresas ofrecen

AT X con elementos propios.


implementaciones comerciales de TEX/L E

1.3 Ventajas e inconvenientes que tiene TEX/LATEX?

Aprendizaje previo, no es un procesador del tipo WYSIWYG

A diferencia de los procesadores de tipo WYSIWYG lo que ves es lo que

consigues (What you see what you get), que pueden usarse casi desde el

AT X requiere un periodo de apren-


primer día con resultados aceptables, L E

dizaje antes de conseguir los primeros frutos. Incluso cuando ya se es un

usuario medio o avanzado, siempre es conveniente tener cerca un manual.

Este proceso de iniciación consiste principalmente en aprenderse las órde-

nes esenciales. La contrapartida de este esfuerzo es que cuando se trabaja

AT X y se compara el resultado con lo obtenido con otros procesado-


con L E

res, la salida de éstos últimos parece poco seria en cuanto se reere a las

4
fórmulas matemáticas. Algo como los dientes, que duelen al salir, pero

luego se hacen imprescindibles.

No se ven los resultados hasta que se compila el archivo

Una de las decepciones que sufre el usuario novato es que no ven los

frutos de su trabajo hasta que compila. Como suelen aparecer errores de

compilación, esto suele ser frustrante, aparte de conllevar una pérdida de

AT X
tiempo. Con el tiempo, los errores disminuyen. De todas formas, L E

no está especialmente dirigido a los aspectos puramente estéticos de cada

página en concreto, sino a los estructurales del documento. Si uno está

AT X no es el procesador adecuado.
interesado estrictamente en la estética, L E

Éste basa la belleza de los documentos creados más en la claridad, en el

buen criterio y en una estética agradable, que en la posibilidad de hacer

fácilmente diseños rebuscados para cada página.

No permite introducir imágenes

Esta acusación habitual no es en absoluto cierta. Simplemente hay que ser

conscientes de los medios de visualización e impresión de que se dispone y

obrar en consecuencia. Lo que no debe olvidarse nunca es que tanto TEX

AT X están pensados como lenguajes de composición de documen-


como L E

tos, no de autoedición.

No tiene variedad de tipos (fuentes)

Es cierto que los tipos CM (Computer Modern) originalmente desarrolla-

dos por Knuth son limitados en cantidad y variedad, por lo que a medida

AT X se difundía, han aumentado las demandas de más tipos para


que L E

usos diversos. Aunque el crecimiento es todavía lento, existe una gran can-

tidad de tipos disponibles. En las versiones para salidas postscript si es

posible el uso de cualquier tipo, pero no se garantiza que las ecuaciones

mantengan la calidad requerida.

5
doc.dvi

doc.tex doc.aux

doc.log

Figura 1.1

1.4 Elementos que intervienen al procesar un documento

El documento fuente: ¾Cómo creo un documento con TEX/LaTeX?

AT X es realmente un lenguaje de programación


Como se ha dicho TEX/L E

de textos. En el documento fuente original se introduce el texto a procesar

junto con una serie de órdenes especicando cómo debe ser procesado éste.

Este paso se realiza con un editor de texto, o con un ambiente de progra-

AT X.
mación especializado totalmente integrado para su uso con TEX/L E

¾Cómo proceso, veo e imprimo un documento con TEX/LaTeX?

Dado un documento fuente doc.tex, éste se procesa mediante TEX si

AT X si se han utilizado las


se han utilizado las órdenes de plain TEX o L E
AT X (Fig. 1.1). Se corrigen los posibles errores de sintaxis y
órdenes de L E

se repite el proceso hasta que éstos se han eliminado.

¾Qué es un archivo *.aux?

AT X usa para el conteo


Documento auxiliar con información interna que L E

y enumeración automática de secciones, ecuaciones, referencias bibliográ-

cas, etc.

6
¾Qué es un archivo *.log?

AT X con todos los detalles de la compi-


Es el cuaderno de bitácora de L E

lación o del procesamiento, incluyendo los mensajes de error.

¾Qué es un archivo *.dvi?

Un archivo DVI (device independent) es uno de los archivos resultantes

AT X. Su forma no depende
al procesar el texto fuente a través de TEX/L E

del dispositivo que se vaya a utilizar para verlo/imprimirlo. Un archi-

vo DVI está pensado para ser leído por un conversor que produzca una

salida adecuada para una determinada impresora, o para un determina-

do visualizador en la pantalla del ordenador. Los archivos DVI utilizan

una codicación interna de TEX de forma que un documento fuente de-

be producir exactamente el mismo archivo DVI, con independencia de la

implementación de TEX que se utiliza para producirlo.

¾Qué es un conversor?

Un conversor es un programa que toma su entrada de un archivo DVI

y produce un archivo que puede enviarse a una impresora (mediante un

driver) o una salida directa a una pantalla (mediante un previewer). Estos

conversores normalmente son especícos a cada impresora o lenguaje de

impresora. Por ejemplo, una impresora postscript entenderá siempre la

salida de un conversor postscript, pero en general no de otros formatos.

¾Qué es el formato pdf?

PDF (Portable Document Format) es, como su nombre indica, un formato

de archivos transportable entre distintas plataformas, creado por Adobe

y especialmente diseñado para visualizar documentos tal y como se han

diseñado. Permite usar colores, grácos, seguir enlaces e imprimir; pero,

fundamentalmente, permite ver en la pantalla los documentos, siendo un

formato compacto. Es muy similar a PS, pero no tiene capacidades de

programación. En relación con TEX PDF es un formato que sustituye al

7
DVI. Los visualizadores de PDF más recomendables son Acrobat Reader

y Ghostview.

¾Qué es el postscript y el postscript encapsulado?

PostScript (PS) es un lenguaje de programación para describir páginas.

Como lenguaje estructurado permite la programación (tiene estructuras

de control y bucles). Fue desarrollado por Adobe. Existen varios intérpre-

tes que permiten la visualización de este formato, Ghostscript por ejemplo.

El formato PS se basa en describir cada página desde un origen de coor-

denadas que se sitúa en la esquina inferior izquierda de la página. PS en-

capsulado (EPS) es el formato estándar para importar y exportar archivos

PS en cualquier tipo de entornos. Usualmente es un archivo que contiene

una sola página que describe una gura. El archivo EPS está especialmen-

te pensado para incluirlo en otros archivos PS, y es como cualquier otro

archivo PS con algunas restricciones.

Grafo de las posibles conversiones de los distintos archivos obtenidos con


TEX/LATEX/pdfTEX/pdfLATEX

*.tex latex *.dvi dvips *.ps

pdflatex dvi2pdf ps2pdf

*.pdf *.pdf *.pdf


Figura 1.2

1.5 Fuente de TEX/LATEX y otros programas relacionados

Distribuciones TEX/LATEX

En principio se podría coger todo el sistema elemento a elemento y ponerlo

todo en común. Sin embargo, para que esto funcione correctamente, el

tiempo requerido y la complejidad del trabajo son grandes. Por esta razón

algunas personas o empresas ya lo han hecho y lo ofrecen preparado en lo

que se denominan distribuciones. Se entiende por distribución un conjunto

AT X junto con otras utilidades


de archivos binarios y paquetes de macros L E

adicionales, hay distribuciones de libre distribución GNU, Shareware (se

8
puede distribuir y probar, pero si se quiere usar regularmente es necesario

pagar el registro) y otras de distribución comercial.

Existen versiones para:

Atari, Amiga, UNIX, VMS, Os2, Windows NT, Mac y MS-DOS.

Las más comunes distribuciones libres o shareware son:

Unix TeTEX

Linux teTEX NTEX

Macintosh OzTEX

DOS/OS2 emTEX gTEX emTEX-TDS


2
Win32 MikTEX fpTEX.

En tanto, que las más comunes distribuciones comerciales para windows

son:

ScienticWord, ScienticWorkPlace y ScienticNotebook, los cuales ofre-

cen una forma de trabajo tipo casi WYSIWYG con un procesador TEX en

segundo plano.

AT X son:
Y, los editores de texto que trabajan especialmente bien con L E

Unix GNU emacs

DOS/OS2 TEXshell
3 4 5
Win32 WinEdt , Winshell , TEXMAKER , PCTEX32

Linux kate, kile.

2 Fabrice Popineau es una versión de teTEX para Windows


3 Shareware
4 GNU
5 GNU

9
¾Qué es CTAN?

Son las abreviaturas de Comprehensive TEX Archive Network (Red del

Archivo Completo de TEX). Es una red mundial de software TEX Los

AT X para práctica-
servidores de CTAN contiene implementaciones de L E

mente todos los sistemas operativos, así como los paquetes de macros TEX

AT X y otros programas que pueden ser útiles. El software que allí se


y L E

encuentra es GNU o shareware.

Los servidores más importantes de CTAN son:

EEUU http://www.ctan.org/

Inglaterra http://www.tex.ac.uk/tex-archive/

Alemania http://www.dante.de/cgi-bin/ctan-index/

Para los usuarios hispanohablantes se ha creado el grupo CervanTEX

el cual busca intercambiar experiencias sobre TEX y promover su uso en

Hispanoamérica. La página Web ocial del grupo es

http://www.cervantex.org/

2 Instalación de TEX/LATEX

2.1 MiKTEX
Una distribución gratuita para Microsoft Windows, desarrollada por Chris-

tian Schenk es MiKTEX. Las características más apreciables de MiKTEX


son su habilidad de actualizarse por sí mismo descargando nuevas versio-

nes de componentes y paquetes instalados previamente, y su fácil proceso

de instalación. La versión actual de MiKTEX es 2.9 y está disponible en

su página ocial (ver Fig. 1.3)

http://miktex.org

MiKTEX 2.9 requiere uno de los siguientes sistemas operativos Win-

dows:

10
Windows 7

Windows Vista with Service Pack 2 (todas las ediciones excepto Star-

ter Edition)

Windows XP with Service Pack 3 (todas las ediciones excepto Starter

Edition)

Windows Server 2008 R2

Windows Server 2008 with Service Pack 2

Windows Server 2003 R2

Windows Server 2003 with Service Pack 2

Tenga en cuenta que MiKTEX 2.9 no funciona en plataformas Windows

antiguas (Windows 9x/ME/NT/2000).

Figura 1.3 Porción de la página web ocial de MiKTEX.

Después de descargar MiKTEX se procede a su instalación haciendo

doble clic sobre el respectivo icono tras lo que aparece un

cuadro como el de la gura 1.4. A continuación se ejecutan los siguientes

pasos:

11
Figura 1.4

1. Activar la casilla de condiciones de instalación del citado cuadro tal

como se muestra en la gura 1.5.

Figura 1.5

2. Pulsar el botón <Siguiente> que se aprecia en la gura 1.6.

Figura 1.6

3. Pulsar el botón <Siguiente> que se aprecia en la gura 1.7.

4. Pulsar el botón <Siguiente> que se aprecia en la gura 1.8.

12
Figura 1.7

Figura 1.8

Figura 1.9

5. Pulsar el botón <Start> que se aprecia en la gura 1.9.

6. Esperar que concluya el proceso indicado en la gura 1.10.

7. Pulsar el botón <Siguiente> que se aprecia en la gura 1.11.

8. Finalizar el proceso pulsando el botón <Close> que se aprecia en la

gura 1.12.

13
Figura 1.10

Figura 1.11

Figura 1.12

MiKTEX 2.9 incluye el editor libre TEXworks al que se puede accesar

desde el botón inicio (ver Fig. 1.13). TEXworks es un editor multiplata-

forma extremadamente simple, no obstante requiere de cierto dominio de

AT X que naturalmente no esta al alcance de quien tiene un


código TEX-L E
AT X.
primer contacto con L E

Por ejemplo, para generar un documento TEX accesamos a TEXworks y

digitamos el código

14
Figura 1.13

Figura 1.14

Hola mundo
\bye

después guardamos el archivo en donde creamos conveniente (en este caso

se le ha asignado el nombre ejemplo1). Seguidamente, seleccionamos la

opción pdfTeX (ver Fig. 1.14) para luego presionar el botón de compi-

lación (ver Fig. 1.15). Después de seguir este proceso se podrá apreciar el

respectivo pdf (ver Fig. 1.16).

AT X, después de haber accesado a T Xworks,


Para generar un documento L E E

se digita el código

\documentclass{article}
\begin{document}
Hola mundo
\end{document}

después se guarda el archivo en donde parezca conveniente (en este ca-

so se le ha asignado el nombre ejemplo2). Seguidamente, se selecciona la

opción pdfLaTeX (ver Fig. 1.17) para luego presionar el botón de com-

Figura 1.15
15
Figura 1.16

Figura 1.17

pilación (ver Fig. 1.15). Después de seguir este proceso se podrá apreciar

el respectivo pdf (ver Fig. 1.19).

3 El editor libre TEXMAKER

TEX MAKER AT X especialmente diseñado para


es un editor libre de L E
AT X.
hacer más fácil y cómodo el trabajo con L E

La página web ocial de TEX MAKER (ver Fig. 1.20) es


http://www.xm1math.net/texmaker

Después de descargar TEX MAKER se procede a su instalación hacien-


do doble clic sobre el respectivo icono tras lo que aparece un

cuadro como el de la gura 1.21. A continuación se ejecutan los siguientes

pasos:

9. Pulsar el botón <I Agree> que se aprecia en la gura 1.21.

10. Pulsar el botón <Install> que se aprecia en la gura 1.22.

Figura 1.18
16
Figura 1.19

Figura 1.20 Porción de la página web ocial de TEXMAKER .

Figura 1.21

11. Esperar que concluya el proceso indicado en la gura 1.23.

12. Finalizar el proceso pulsando el botón <Close> que se aprecia en la

gura 1.24.

17
Figura 1.22

Figura 1.23

Figura 1.24

13. Acceder a TEX MAKER haciendo doble clic en el icono de acceso

directo que debe haberse creado en el escritorio (ver Fig. 1.25).

14. Elegir <Congurar Texmaker> de la opción <Opciones> de la barra

de Menú (ver Fig. 1.26).

15. Seleccionar <Editor> de la ventana Congurar Texmaker y elegir ISO-


8859-1 (para el reconocimiento de caracteres no pertenecientes al có-

digo ASCII) en la opción Codicación del editor. Elegir, además, el

diccionario ES_es.dic (para revisión ortográca en español) en la op-


ción Diccionario. Aquí también es posible congurar: tipo y tamaño
de letra, colores para entorno matemático, comandos y palabras clave,

así como los atajos (ver Fig. 1.27).

18
Figura 1.25

16. Finalmente, para que se actualicen las conguraciones se presiona el

botón <Aceptar> que se ubica en la parte inferior (ver Fig. 1.27).

Después de ejecutar los dieciséis pasos antes descritos ya podemos ela-

AT X con T X
borar nuestro primer documento en L E E MAKER . No obstante,
para poder visualizar, en forma independiente, cualquier documento que

elaboremos es preciso asegurarnos de tener instalado en el ordenador algún

visor de archivos pdf. Los más comunes en nuestro medio son el Acrobat

Reader y el Foxit Reader (ambos pueden descargarse en forma gratuita).

3.1 Prueba de la correcta instalación de TEXMAKER

Después de haber accedido a TEX MAKER realizaremos los siguientes

pasos:

1. Pulsar el botón <Nuevo> que se aprecia en la gura 1.28. Después

de esto aparecerá automáticamente una hoja en blanco como la que

muestra en la gura 1.29.

2. Elegir <Asistente para nuevo documento> de la opción <Asistentes>


de la barra de Menú (ver Fig. 1.30), tras lo cual debe aparecer un

cuadro de diálogo como el de la gura 1.31.

19
Figura 1.26

Figura 1.27

20
Figura 1.28

Figura 1.29

21
Figura 1.30

Figura 1.31

22
Figura 1.32

3. Presionar el botón <Aceptar> ubicado en la parte inferior (ver Fig.

1.32). Después de esto, la hoja en blanco será llenada automáticamente

con el código mostrado en la gura 1.33.

Esto es una prueba. en el campo


4. Escribir el texto: ubicado entre

\begin{document} y \end{document} (ver g. 1.34).

5. Crear una nueva carpeta y guardar en ésta el archivo, asignándole un

nombre. En nuestro caso convendremos en asignarle el nombre ejemplo

(ver gs. 1.35 y 1.36).

6. Vericar que esté activa la ventana de mensajes presionando el botón

<Messages/Log>, mostrado en la gura 1.37, hasta que aparezca un

cuadro como el que se ha remarcado en la gura 1.38.

7. Presionar la tecla <F6> y esperar a que se compile el documento y se


genere el respectivo archivo pdf. Al nalizar la compilación debe apa-

recer un mensaje, como el que se muestra en la gura 1.39, indicando

que el proceso ha terminado exitosamente.

8. Presionar la tecla <F7> para poder ver el archivo pdf con el visor de
archivos pdf de TEX MAKER (ver g. 1.40).
23
Figura 1.33

Figura 1.34

24
Figura 1.35

Figura 1.36

25
Figura 1.37

Figura 1.38

26
Figura 1.39

Figura 1.40

27
Para realizar cualquier cambio en el documento simplemente se accede

al archivo tex (en este caso ejemplo.tex ), se hace el cambio y se actualiza

presionado <F6> y luego <F7> (no olvide guardar los cambios. Una forma
rápida de hacer esto es presionando la combinación <Ctrl>+<S>).

Téngase presente que en la carpeta donde se ha almacenado el archi-

vo, al que se convino llamar ejemplo, se habrán creado cuatro archivos.

Especícamente: ejemplo.tex, ejemplo.txt, ejemplo.aux y ejemplo.pdf. Éste

último archivo constituye nuestro documento propiamente dicho.

Si por alguna razón es abierto el archivo pdf (en este caso ejemplo.pdf )

con el Acrobat Reader, éste debe cerrarse antes de que se efectúe cualquier

cambio en el archivo tex (en este caso ejemplo.tex ), pues de lo contrario

no permitirá realizar ninguna actualización desde TEXMAKER ; es de-


cir después de presionar <F6>, en la respectiva hoja de TEXMAKER ,

aparecerá un mensaje de error en el cuadro de mensajes (ver g. 1.38).

4 Instrucciones básicas de LATEX

4.1 Comandos

AT X comienzan con \ seguido de una secuencia de


Los comandos de L E
6
letras .

Tipos y sintaxis de los comandos


7
Simples :

\<comando>

Con argumentos obligatorios:

\<comando> {. . . }{. . . }. . . {. . . }

Con argumentos obligatorios y opcionales:

\<comando> [<opcionales>]{. . . }{. . . }. . . {. . . }

6 Los comandos en LAT X son sensibles


a mayúsculas y minúsculas
E
7 Luego de los comandos simples los espacios son ignorados, por esta razón es im-
portante forzar a que aparezcan éstos mediante cualquiera de las siguientes secuencias:
\<comando>\ , {\<comando>} o \<comando>{}.

28
4.2 Declaraciones globales (bloques) y entornos

Declaraciones globales (bloques)

Son aquella declaraciones que limitan su alcance al bloque de texto con-

tenido entre un par de llaves {. . . <texto> . . . } emparejadas.

Entornos

Son construcciones del documento que son tratadas de manera distinta del

documento principal, deben especicarse en la forma:

\begin{<entorno>}

<texto>
\end{<entorno>}

4.3 Comentarios, espacios en blanco y saltos de línea

Comentarios

Todo texto que se encuentre a la derecha del símbolo % no es procesado,

de esta forma se pueden agregar los comentarios dentro de un documento

AT X.
L E

Espacios en blanco y saltos de línea

AT X tiene
En una secuencia de espacios en blanco o de saltos de línea, L E

en cuenta solo el primer espacio en blanco o el primer salto de línea.

4.4 Símbolos especiales

Símbolos especiales

Los siguientes símbolos (entre otros) no se pueden obtener directamente,

es necesario especicarlos mediante comandos:

\ { } $ % & # _

29
Tabla de símbolos especiales más comunes

Símbolo Comando Símbolo Comando

\ \textbackslash & \&

{ \{ } \}

_ \_ $ \$

% \% # \#

4.5 Tilde, diéresis, circunejo y virgulilla

AT X procesa archivos escritos con ASCII 7, los símbolos con


Dado que L E

tilde, diéresis, circunejo o virgulilla no se pueden obtener directamente,

para esto existen unos comandos especiales, como por ejemplo: para la á

puede usarse \'a o \{'a}.

Símbolos con tilde, diéresis, circunejo o virgulilla

Símbolo Comando Símbolo Comando

á \'a o \{'a} ä \"a o \"{a}

é \'e o \'{e} â \^a o \^{a}

í \'i o \{'i} ñ \~n o \~{n}

ó \'o o \{'o} Ñ \~N o \~{N}

ú \'u o \{'u}

Una herramienta importante para los latinos

Los comandos mostrados en la tabla previa caen en desuso si se utiliza

una herramienta especialmente diseñada para latinos (ver sec. 9), la cual

debe invocarse desde nuestro archivo tex mediante

\usepackage[latin1]{inputenc}
30
5 Estructura de los documentos LATEX

5.1 Documentos básicos más utilizados

article Clase artículo, documentos cortos.

book Clase libro, documentos más largos que

contienen capítulos.

report Clase reporte o informe técnico.

beamer Clase diapositivas.

5.2 Estructura básica de un documento

La estructura básica de un documento será de esta forma:

\documentclass[
<opciones >]{<clase >}
< título >, < autor >, < fecha >
Preámbulo
< declaraciones: paquetes >
\begin{document}
%(inicio documento)
< comandos especiales : \maketitle >
Documento
< Cuerpo del documento >
\end{document} %(fin documento)

5.3 Ejemplo de un documento LATEX

El documento obtenido con el siguiente código es de la clase article y

puede apreciarse en la gura 1.41.

\documentclass{article}
\usepackage[latin1]{inputenc}
\author{A. U. Tor}
\title{Primer Documento}
\begin{document}
\maketitle
31
\Éste es mi primer documento escrito en \LaTeX.
\end{document}

Figura 1.41

6 Documentos básicos más utilizados

6.1 La clase article

\documentclass[
<opciones >]{article}
< declaraciones: paquetes, comandos >
Preámbulo
< título >, < autor >, < fecha >

\begin{document}



 \maketitle


\begin{abstract}...\end{abstract}





Documento \section{...}


\subsection{...}






\subsubsection{...}

\end{document}
32
Comandos importantes en la clase article

\maketitle Hace que se produzcan las líneas para el

título, autor y fecha. Debe ubicarse des-

pués de \begin{document}, si se omi-

te, no se generan dichos campos.

\date Se imprime la fecha vigente del compu-

tador, o el valor que se ingrese al campo

obligatorio, si se desea que no aparezca

se debe escribir \date{ }.

\thanks{...} Se puede utilizar en \title, \author,


\date, produce notas al pie de página

con la información del autor.

\begin{abstract} En este entorno se coloca el resumen

. . . \end{abstract} del artículo y debe ubicarse después de

\maketitle.

\section{...}, Secciones, subsecciones, etc., las cuales

\subsection{...}, son numeradas automáticamente.

etc.

Ejemplo de un documento escrito en la clase article

El documento que se obtiene con el siguiente código puede apreciarse en

la gura 1.42.

\documentclass{article}

\usepackage[latin1]{inputenc}

\title{La clase article en \LaTeX}


\author{A. U. Tor \thanks{Catedrático, UNP,
autor@unp.edu.pe}}
\date{}
33
\begin{document}

\maketitle

\begin{abstract}
En este documento se exhibirán las
características más importantes de un
artículo escrito en \LaTeX.
\end{abstract}

\section{Artículo en \LaTeX}
Los artículos son la clase de documentos \LaTeX\
más ampliamente utilizados, dada la sencillez en
su creación.

\subsection{Estructura de un artículo}
Este tipo de documento se puede dividir en dos partes,
los campos de identificación: título, autor y fecha.
Y el cuerpo del documento, en el cual el texto
pertenece a una de las siguientes unidades divisionales:
resumen, secciones, subsecciones, parágrafos,
subparágrafos, etc.

\end{document}

6.2 La clase book

\documentclass[
<opciones >]{book}
< declaraciones: paquetes, comandos >
Preámbulo
< título >, < autor >, < fecha >

34
Figura 1.42 Primera página generada con la clase article.

35
\begin{document}



 \maketitle


\frontmatter






\mainmatter






 \chapter{...}

Documento


 \section{...}


\subsection{...}






\appendix






\backmatter

\end{document}

Comandos importantes en la clase book

\maketitle Fuerza a que se produzcan las líneas para el

título, autor y fecha. Al omitirlo no se gene-

rará la página del título.

\frontmatter Apertura del libro, se presenta todo aquel

contenido que no tenga que ver con el tema

central tratado en el libro: prólogo, agradeci-

mientos, tabla de contenido, derechos de au-

tor, índice de guras, índice de tablas, etc.

La numeración se realiza utilizando numera-

ción romana.

\mainmatter Contiene la parte central del documento en

la que se desarrolla el tema tratado en el li-

bro. Aquí también se ubican los apéndices,

mediante el comando \appendix, los cuales,


después de ingresarse como capítulos, son

automáticamente numerados con las letras

mayúsculas A, B, C, . . .

36
\chapter{...}, Capítulos, secciones, etc., las cuales corres-

\section{...}, ponden a la parte central y son numeradas

etc. automáticamente.

\backmatter Es el cierre del documento, contiene el índice

alfabético, bibliografía, conclusiones, recono-

cimientos, información editorial, etc. Los ca-

pítulos no son numerados.

Ejemplo de un documento escrito en la clase book

El documento que se obtiene con el siguiente código puede apreciarse en

las guras 1.43, 1.44, 1.45, 1.46 y 1.47.

\documentclass{book}
\usepackage[latin1]{inputenc}
\title{La clase book en \LaTeX}
\author{A. U. Tor
\thanks{Catedrático, UNP, autor@unp.edu.pe}}
\date{}

\begin{document}

\maketitle

\frontmatter

\chapter{Prólogo}

La clase book facilita la digitación de libros de alta


calidad.

\tableofcontents

37
\mainmatter

\chapter{Libro en \LaTeX}
Los libros son la clase de documentos \LaTeX\ más
completa.

\section{Estructura de un libro}
Este tipo de documento se puede dividir en tres partes,
la apertura: prólogo, agradecimientos, tabla de
contenidos, etc. La parte central del documento, en la
que se desarrolla el tema tratado y el texto pertenece a
una de las siguientes unidades divisionales: capítulos
secciones, subsecciones, etc. Y el cierre del documento
que contiene la bibliografía, conclusiones,
recomendaciones, etc.

\backmatter

\begin{thebibliography}{CM}
\bibitem{Ar}
Aranda, E.
CURSO DE LATEX.
Departamento de Matemáticas, E.T.S. Ingenieros
Industriales, Universidad de Castilla, La Mancha.
(2008).
\end{thebibliography}

\end{document}

6.3 La clase report

La clase report es similar a la clasebook, aunque imprime por una sola


cara y tiene disponible el entorno abstract para generar el resumen en
una página independiente.

38
Figura 1.43 Portada generada con la clase book.

39
Figura 1.44 Página del prólogo generada con la clase book.

40
Figura 1.45 Página de la tabla de contenidos generada con la
clase book. El inconveniente del título en inglés se supera usando
el paquete babel (ver sección 8).

41
Figura 1.46 Página del primer capítulo generada con la clase
book. El inconveniente del título en inglés se supera usando el pa-
quete babel (ver sección 8)

42
Figura 1.47 Página de la bibliografía generada con la clase book.
El inconveniente del título en inglés se supera usando el paquete
babel (ver sección 8)

43
\documentclass[
<opciones >]{report}
< declaraciones: paquetes, comandos >
Preámbulo
< título >, < autor >, < fecha >

\begin{document}



 \maketitle


\chapter{...}





Documento \section{...}


\subsection{...}






 \appendix

\end{document}

Comandos importantes en la clase report

\maketitle Fuerza a que se produzcan las líneas

para el título, autor y fecha. Al omi-

tirlo no se generará la página del tí-

tulo.

\chapter{...}, Capítulos, secciones, etc., las cuales


\section{...}, corresponden a la parte central y son
etc. numeradas automáticamente.

Ejemplo de un documento escrito en la clase report

El documento que se obtiene con el siguiente código puede apreciarse en

las guras 1.48, 1.49, 1.50, 1.51, 1.52 y 1.53.

\documentclass{report}
\usepackage[latin1]{inputenc}
\title{La clase report en \LaTeX}
\author{A. U. Tor
\thanks{Catedrático, UNP, autor@unp.edu.pe}}
\date{}

44
\begin{document}

\maketitle

\begin{abstract}

La clase report es similar a la clase book, aunque imprime


por una sola cara y tiene disponible el entorno abstract
para generar el resumen en una página independiente.

\end{abstract}

\chapter*{Prólogo} %(El * evita la palabra Chapter)

La clase report facilita la digitación de reportes de


alta calidad.

\tableofcontents

\chapter{Reporte en \LaTeX}
Los reportes son la clase de documentos \LaTeX\ más
completa.

\section{Estructura de un reporte}
Este tipo de documento se puede dividir en tres partes,
la apertura: prólogo, agradecimientos, tabla de
contenidos, etc. La parte central del documento, en la
que se desarrolla el tema tratado y el texto pertenece a
una de las siguientes unidades divisionales: capítulos
secciones, subsecciones, etc.

\begin{thebibliography}{CM}

45
\bibitem{Ar}
Aranda, E.
CURSO DE LATEX.
Departamento de Matem\'{a}ticas, E.T.S. Ingenieros
Industriales, Universidad de Castilla, La Mancha.
(2008).

\end{thebibliography}

\end{document}

6.4 La clase beamer

La clase beamer nos permite realizar diapositivas, estilo Power Point pero
utilizando todas las herramientas que nos proporciona L AT X. beamer es el
E

estándar para realizar diapositivas no enfocadas a vender algo, sino enfo-

cadas a presentar conocimiento técnico, incluso realizar diapositivas para

presentar artículos de investigación. Debe tenerse presente que beamer a

diferencia de Power Point, MindManagment, Impress, etc, no esta enfo-

cado a que la presentación se vea bonita o agradable sino a que este

estructurada, ordenada, coherente y legible (ver Cap. 2).

7 Paquetes

Un paquete (en inglés package ) es un conjunto de macros (instrucciones

AT X) que permiten agregar nuevos recursos y utilizar mejor los


de TEX o L E

existentes. La sintaxis para invocar un paquete es la siguiente

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

Los paquetes propiamente dichos son archivos con extensión sty. Algu-
nos paquetes son muy populares y tienen un estatus semi-ocial pero no

vienen instalados en implementaciones corrientes. El usuario debe apren-

der a instalarlos, lo cual depende tanto de la plataforma computacional

utilizada como de la implementación local.

46
Figura 1.48 Portada generada con la clase report

47
Figura 1.49 Página del resumen generada con la clase report.
El inconveniente del título en inglés se supera usando el paquete
babel (ver sección 8)

48
Figura 1.50 Página del prólogo generada con la clase report.

49
Figura 1.51 Página de la tabla de contenidos generada con la
clase report. El inconveniente del título en inglés se supera usando
el paquete babel (ver sección 8)

50
Figura 1.52 Página del primer capítulo generada con la clase
report. El inconveniente del título en inglés se supera usando el
paquete babel (ver sección 8)

51
Figura 1.53 Página de la bibliografía generada con la clase
report. El inconveniente del título en inglés se supera usando el
paquete babel (ver sección 8)

52
7.1 Paquetes estándar más utilizados

amsmath, Utilizados para la edición de textos, manejo de sím-

amssymb, bolos, teoremas y sus respectivas demostraciones.

amsthm
geometry Proporciona una forma simple e intuitiva de ajustar

los márgenes, además permite variar libremente el

tamaño y la orientación del papel.

babel Utilizado para generar documentos en idiomas dis-

tintos al inglés.

inputenc Utilizado para obtener caracteres no pertenecientes

al conjunto ASCII.

graphicx Es utilizado para realizar la inclusión de grácas.

subgure Permite introducir guras con más de un gráco, y

pies de guras personalizados.

hyperref Permite generar enlaces activos para las referencias,

notas al pie, capítulos, secciones, etc. en el índice

general, así como marcadores.

color Permite la inclusión de textos en color y colocar fon-

dos coloreados.

multicol Permite escribir un documento a dos o más colum-

nas.

PSTricks Se utiliza para la creación, manipulación y transfor-

mación de guras geométricas.

fancyhdr Se utiliza para controlar complemente el contenido

y la apariencia de los encabezados y pies de página.

fancychap Permite cambiar la presentación de la primera pá-

gina para los capítulos.

53
fancybox Permite la inclusión de caja con bordes coloreados

y decorados.

colortbl Permite colorear las las, columnas o casillas de una

tabla.

longtable Permite extender tablas por dos o más páginas.

caption Permite manipular la apariencia de los epígrafes o

rótulos de la tablas y grácas.

makeidx Permite generar automáticamente índices alfabéti-

cos y temáticos.

Todos los paquetes previamente mencionados son distribuidos gratuita-

mente por la CTAN (ver subsección 1.5); no obstante en las dos secciones

siguientes se hará una breve mención de los paquetes babel, inputenc y

geometry, debido a su inmediato requerimiento.

8 El paquete babel

El paquete babel permite generar textos en diferentes idiomas. Dado un

idioma en particular se tiene la escritura en dicho idioma de los títulos de la

tabla de contenidos, lista de tablas, lista de guras, capítulos, bibliografía,

etc. Así como la partición automática en patrones silábicos respetando las

normas del idioma elegido.

La sintaxis de este paquete es la siguiente:

\usepackage[<idioma>, <options>]{babel}

Por ejemplo, en este trabajo se ha utilizado el idioma español y una

opción para que los párrafos de inicio de capítulo, sección o subsección no

presenten sangría de primera línea. Esto se ha conseguido digitando

\usepackage[spanish,es-noindentfirst]{babel}

en el preámbulo.

54
Para cambiar de idioma en cualquier parte del documento se utiliza el

comando \selectlanguage{<idioma>}, y para saber el idioma que se

encuentra en uso se utiliza el comando \languagename.

9 El paquete inputenc

El paquete inputenc permite el uso directo de caracteres que no pertene-


cen al conjunto ASCII. La sintaxis de este paquete es la siguiente:

\usepackage[<options>]{inputenc}

La opción recomendada para nuestro idioma es latin1. Así pues, en el


preámbulo de nuestro documento deberemos escribir

\usepackage[latin1]{inputenc}

tras lo cual, por ejemplo, ya no es preciso utilizar el código \'{a} para la

a tildada sino que directamente digitamos á.


Para digitar este trabajo se ha utilizado este paquete, por ese motivo se

utilizan directamente los símbolos á, é, í, ó, ú, ñ, ü, Á, É etc. sin recurrir

al código mencionado en la subsección 4.5.

10 El paquete geometry

El paquete geometry proporciona una forma simple e intuitiva de ajustar


los parámetros de colocación del texto en un documento; además, nos

permite variar libremente el tamaño y orientación del papel, siendo muy

útil su empleo para la producción de posters (tamaño DIN-A0), pequeños

folletos, etc.

El ajuste de los diferentes parámetros debe hacerse con argumentos

optativos en la carga del paquete con \usepackage{geometry}. Así por

ejemplo, con:

\usepackage[papersize={841mm,1189mm}8 ,lmargin=2cm,
rmargin=2cm,tmargin=2cm,bmargin=2cm]{geometry}
8 Para el caso de tamaños estandarizados como el tamaño DIN-A4 puede sustituirse
papersize={210mm,297mm} por a4paper.

55
se deniría un tamaño de papel DIN-A0 (841mm × 1189mm), y se ajus-
tarían los márgenes izquierdo, derecho, superior e inferior a 2cm, respec-

tivamente. A modo de otro ejemplo, con

\usepackage[landscape]{geometry}

se cambiaría la orientación del papel, a horizontal.

11 Formato de página

11.1 Parámetros del formato de página

\headheight Altura del encabezado.

\headsep Espacio entre la base del encabezado y el tope del cuerpo del

documento.

\marginparsep Ancho de las notas al margen.

\marginparwidth Espacio entre el cuerpo del documento y las notas al

margen.

\footskip Distancia vertical entre la base del cuerpo del documento y la


9
base del footer .

11.2 Modicación de los parámetros del formato de página

Los parámetros del formato de página se modican mediante:

\setlength{\<parametro>}{<longitud>}

Así, por ejemplo, para modicar la distancia vertical entre la base del

cuerpo del documento y la base del footer habría que escribir en el preám-

bulo:

\setlength{\footskip}{1cm}
9 Porlo general el footer es la línea donde se ubica la numeración, siempre que la
numeración esté en la parte inferior del documento.

56
12 Edición de texto

12.1 Tipos

AT X elige el tamaño y tipo de las fuentes usadas según una estructura


L E

lógica. Para cambiar directamente se pueden usar las instrucciones siguien-

tes

Comando Tipo Abrev.

\textrm{<texto >} Letra romana \rm

\textit{<texto >} Letra itálica \it

\texttt{<texto >} Máquina de escribir \tt

\textbf{<texto >} Letra negrita \bf

\textsf{<texto >} Letra sans serif \sf

\textsl{<texto >} Letra inclinada \sl

\textsc{<texto >} Letra versalita \sc

Cada uno de los tipos de fuentes básicos tiene su modo enfático, el cual

se obtiene por medio de comando

\emph{<texto >}

A continuación se muestra una tabla que contiene ejemplos acerca de

los resultados obtenidos al usar el modo enfático en los tipos de fuentes

básicos.

57
El modo enfático. El modo enfático.

El modo enfático. \emph{El modo enfático}.

El modo enfático. El modo enfático.

\textit{El modo enfático. \emph{El modo enfático}.}

El modo enfático. El modo enfático.

\texttt{El modo enfático. \emph{El modo enfático}.}

El modo enfático. El modo enfático.


\textbf{El modo enfático. \emph{El modo enfático}.}

El modo enfático. El modo enfático.

\textsf{El modo enfático. \emph{El modo enfático}.}

El modo enfático. El modo enfático.

\textsl{El modo enfático. \emph{El modo enfático}.}

El modo enfático. El modo enfático.

\textsc{El modo enfático. \emph{El modo enfático}.}

El comando \textnormal{<texto >} devuelve a la fuente por defecto.

También es posible el uso de cualquier otra fuente que se tenga instalada.

12.2 Tamaños

El tamaño de la fuente depende de la seelcción por defecto. Los comandos

para modicarlo son

58
Comando Tamaño

\normalsize Letra normal

\small Letra pequeña

\footnotesize Letra más pequeña

\scriptsize Letra muy pequeña

\tiny La letra más pequeña

\large Letra grande


\Large Letra más grande

\LARGE Letra muy grande


\huge Letra enorme
\Huge La letra más grande
Estos comandos afectan al texto que sigue a partir de su aparación, o

al área delimitada entre paréntesis. Por ejemplo

Estas palabras aparecerán en Estas palabras aparecerán en letra


{\tiny letra pequeña} pequeña

Para ajustar automáticamente el espacio entre renglones, de acuerdo

con el tamaño de letra en uso, se cuenta con el comando \par. Un ejemplo


de su uso es el siguiente

{\Large ``Todo saber tiene Todo saber tiene de ciencia


de ciencia lo que tiene de lo que tiene de matemática,
matemática'', Poincaré} Poincaré

{\Large ``Todo saber tiene Todo saber tiene de ciencia

de ciencia lo que tiene de lo que tiene de matemática,


matemática'', Poincaré \par} Poincaré

59
12.3 Formato de texto

Texto centrado

El entorno center hace que el texto aparezca centrado. Si el texto fuera

AT X se ocupa de partirlo en varias líneas, y si se quiere indicar


muy largo, L E

el salto de línea se utiliza el comando \\.

\begin{center}
El ingenioso hidalgo\\ El ingenioso hidalgo

D. Quijote de la Mancha D. Quijote de la Mancha

\end{center}

Alineación a izquierda o derecha

De forma similar al entorno center existen los entornos flushright y

flushleft para alineación del texto a derecha e izquierda, respectiva-

mente.

\begin{flushleft}
Este texto aparecerá\\ Este texto aparecerá

alineado por su\\ alineado por su

parte izquierda parte izquierda

\end{flushleft}

\begin{flushright}
Este texto aparecerá\\ Este texto aparecerá

alineado por su\\ alineado por su

parte derecha parte derecha

\end{flushright}

Téngase presente que el uso del comando \\, en los tres casos previos,

es opcional y depende de la extensión que queramos asignar a cada renglón

del texto en questión.

60
Citas textuales y poemas

Existen otros entornos para resaltar partes de un texto, como citas textua-

les o poemas, de cierta longitud. Los entornos que nos permiten hacerlo

son: quote, quotation y verse. A continuación se da una breve descrip-

ción de estos entornos.

El entorno quote es adecuado para una cita textual no larga.

... B. Russell escribió:


... B. Russell escribió:
\begin{quote}
Las matemáticas pueden ser Las matemáticas pueden ser

definidas como aquel tema denidas como aquel tema

en el cual ni sabemos nunca en el cual ni sabemos nunca

lo que decimos ni si lo que lo que decimos ni si lo que

decimos es verdadero. decimos es verdadero.

\end{quote}

El entorno quotation es más apropiado para citas largas. Nótese la

diferencia con respecto al anterior.

... B. Russell escribió:


... B. Russell escribió:
\begin{quotation}
Las matemáticas pueden ser Las matemáticas pueden

definidas como aquel tema ser denidas como aquel te-

en el cual ni sabemos nunca ma en el cual ni sabemos

lo que decimos ni si lo que nunca lo que decimos ni si

decimos es verdadero. lo que decimos es verdadero.

\end{quotation}

Para escribir poesía disponemos del entorno verse, donde cada verso

es separado con el comando \\.


61
He aquí un poema
\begin{verse}
Voy a la casa donde no viviremos,\\
miro los muros que no levantarán,\\
huelo las bugambilas que no crecerán,\\
y con los hijos que jamás tendremos,\\
salgo a ver el mar ...\\
donde se han hundido tantas cosa nuestras.\\
\rightline{\textsc{(M. Scorza)}}
\end{verse}

El código del cuadro anterior genera el siguiente texto:

He aquí un poema

Voy a la casa donde no viviremos,

miro los muros que no levantarán,

huelo las bugambilias que no crecerán

y con los hijos que jamás tendremos

salgo a ver el mar ...

donde se han hundido tantas cosa nuestras.

(M. Scorza)

Interlineado, sangría y espacios

El espacio entre líneas del texto se puede cambiar en el preámbulo con la

orden

\renewcommand{\baselinestretch}{<número >}

donde número se reere a un factor de interlineado, que por defecto es 1.


Por ejemplo, si se pone:

\renewcommand{\baselinestretch}{2},

se estará escribiendo a doble espacio. Es posible jar número a un valor

decimal.

62
El espacio entre párrafos del texto se puede cambiar en el preámbulo

con la orden

\setlength{\parskip}{<longitud >}

donde longitud se reere a una medida. Por ejemplo si se pone:

\setlength{\parskip}{2cm}

se estará estableciendo un espacio de 2cm entre párrafos del texto.

AT X introduce un sangrado de forma automá-


Al inicio de un párrafo L E

tica, que puede ser evitado con el comando \noindent.


La longitud del sangrado del texto se puede cambiar en el preámbulo

con la orden

\setlength{\parindent}{<longitud >}

donde longitud se reere a una medida, como en el caso previo.

El salto de línea sin provocar un cambio de párrafo puede llevarse a

cabo con uno de los siguientes comandos \newline o \\[salto ]. Donde

el argumento opcional salto se reere a la distancia vertical adicional a

la que debe situarse la siguiente línea. Si tal línea no queda en la misma

AT X ignorará dicha longitud. La versión


página, L E \\* indica que la línea

que se inicia después del comando no debe pasar a la página siguiente.

Para aumentar la distancia entre párrafos pueden usarse los comandos

\smallskip, \medskip y \bigskip, el último de los cuales aproxima-

damente supondría dejar una línea en blanco, mientras que los otros se

reeren a la mitad y cuarta parte de éste, respectivamente.

Para poner distancias entre palabras podemos usar alguno de los co-

mandos siguientes: \ (espacio entre palabras), \quad (longitud de una

M) y \qquad (longitud de dos M). También se cuenta con los llamados

micro-espacios que son producidos por los comandos: \, (un micro-espacio


equivalente a un sexto de un \quad), \; (dos micro-espacios), \: (tres

micro-espacios) y \! (un micro-espacio negativo).

63
Y los siguientes comandos introducen espacios tanto horizontales (si

\enspace
van en un texto normal) como verticales (si van entre párrafos),

(espacio de longitud medio M), \thinspace (espacio de longitud 0.16667

M) y \negthinspace (espacio negativo de longitud 0.16667 M).

Notas a pie de página

Las notas a pie de página se generan con el comando \footnote{<texto


de la nota >} en la posición del texto en la que queremos que aparezca la

marca de la nota.

El espacio entre entre el texto y el pie de página se puede cambiar en

el preámbulo con la orden

\setlength{\skip\footins}{<longitud >}

donde longitud se reere a una medida. Por ejemplo si se pone:

\setlength{\skip\footins}{2cm}

se estará estableciendo un espacio de 2cm entre entre el texto y el pie de

página.

El espacio entre entre pies de página se puede cambiar en el preámbulo

con la orden

\setlength{\footnotesep}{<longitud >}

donde longitud se reere a una medida, como en el caso previo.

La línea que separa los pies de página del texto también se puede cam-

AT X usa por defecto para elaborar


biar en el preámbulo. El código que L E

dicha línea es

\newcommand{\footnoterule}{
\vspace*{-3pt}
\noindent\rule{2in}{0.4pt}
\vspace*{2.6pt}
}
64
Para modicar la línea en cuestión debemos escribir, por ejemplo, en el

preámbulo

\renewcommand{\footnoterule}{
\vspace*{-3pt}
\noindent\rule{10in}{2pt}
\vspace*{2.6pt}
}

lo que aumentaría el largo y grosor de dicha línea (Note que al inicio del

primer código se usa \newcommand, mientras que al inicio del segundo,

\renewcommand).

División silábica

Cuando la inclusión de una palabra supera la longitud de línea y su ex-

AT X introduce una separación silábica


clusión la hace demasiado corta, L E

según un algoritmo que depende del idioma en que esté trabajando. En

caso de que el algoritmo no funcione correctamente, es posible indicar al

compilador los posible lugares en los que se puede dividir dicha palabra.

El comando a utilizar es \-. Por ejemplo, reemplazando la palabra

incomible por in\-co\-mi\-ble

Este comando actúa localmente sobre la palabra en cuestión, pero si que-

remos proporcionar al compilador información sobre cómo dividir ciertas

palabras en todo el texto, es posible usar, en el preámbulo, la orden

\hyphenation{<palabra1 palabra2 ...>}

10
con la división correspondiente, en la siguiente forma

\hyphenation{ma-ter-ni-dad al-bo-ro-to}.

Las palabras se separan con espacios en blanco, sin signos de puntua-

ción.
10 Lamentablemente sólo la primera forma admite tildes, virgulillas, etc.

65
Evitar la separación de palabras

Si no se desea que en un texto dos palabras seguidas aparezcan en líneas

distintas, como en el texto siguiente

Los nombre propios como


Los nombre propios como A.
A. Einstein no deberían
Einstein no deberían aparecer en
aparecer en líneas
líneas separadas.
separadas.

Los nombre propios como


Los nombre propios como
A.~Einstein no deberían
A. Einstein no deberían aparecer
aparecer en líneas
en líneas separadas.
separadas.

13 Matemática

13.1 Modos texto y display

TEX fue especialmente diseñado para producir documentos de carácter

cientíco con un contenido importante de matemática. Precisamente, es

AT X
la calidad en la escritura de tipografía matemática donde TEX y L E

marcan la diferencia.

AT X divide la introducción de tipografía matemática según


En esencia L E

se haga en la misma línea del párrafo en que se está escribiendo (modo

texto ), o en párrafos separados (modo display ).

La tipografía matemática escrita en modo texto, ha de ser introducida

entre $ y $, mientras que para hacerlo modo display, lo más común es

encerrar la expresión entre $$ y $$ (aunque, equivalentemente, también

puede ser entre \[ y \]).


Por otra parte, puesto que es muy frecuente el referenciar una fórmula

matemática en un texto, el entorno equation, que esencialmente tiene el

mismo funcionamiento que $$, añade además un número a la ecuación

para futuras referencias.

66
Ejemplo

El siguiente ejemplo muestra los funcionamientos de los modos texto y

display.

Sea $\{ \tilde\gamma_{ij} \}_{0\leq


i+j\leq 2n}$ una sucesión de números
reales tales que $\tilde\gamma_{00}>0$.
Consideramos ${\cal C}[t_1,t_2]$ el
conjunto de polinomios complejos
en $t_1$ y $t_2$ de grado $2n$ y
definimos $\tilde\varphi:{\cal C}
[t_1,t_2]\longrightarrow\mathbb{C}$ el
funcional lineal complejo que interpola
a la sucesión $\tilde\gamma_{ij}$, es
decir $$\tilde\varphi(t_1^i t_2^j) =
\tilde\gamma_{ij}.$$

Sea {γ̃ij }0≤i+j≤2n una sucesión de números reales

tales que γ̃00 > 0. Consideramos C[t1 , t2 ] el conjun-

to de polinomios complejos en t1 y t2 de grado 2n


y denimos ϕ̃ : C[t1 , t2 ] −→ C el funcional lineal
complejo que interpola a la sucesión γ̃ij , es decir

ϕ̃(ti1 tj2 ) = γ̃ij .

Los comandos \textstyle y \displaystyle

Determinadas construcciones matemáticas adquieren un tamaño distinto

según es escriban en modo texto o display. Por ejemplo:

La fórmula $\sum_{k=1}^{n}k Pn n(n+1)


= \frac{n(n+1)}{2}$ es bien
La fórmula k=1 k = 2 es

bien conocida.
conocida.

67
La fórmula

La fórmula $$\sum_{k=1}^{n}k n
X n(n + 1)
= \frac{n(n+1)}{2}$$ es bien k=
2
conocida. k=1

es bien conocida.

La primera ha sido escrita en modo texto y la segunda en modo display.

Si se quiere obtener resultados distintos en uno u otro modo debe usarse

los comandos \textstyle (en modo display) o \displaystyle (en modo


texto). Así:

La fórmula n
$\displaystyle\sum_{k=1}^{n}k
X n(n + 1)
La fórmula k =
2
= \frac{n(n+1)}{2}$ es bien k=1
es bien conocida.
conocida.

La fórmula La fórmula

$$\textstyle\sum_{k=1}^{n}k Pn n(n+1)
k=1 k =
= \frac{n(n+1)}{2}$$ es bien 2

conocida. es bien conocida.

13.2 Construcciones diversas

Téngase presente que algunas de las construcciones pueden precisar los

paquetes

amsmath y amssymb.

Fracciones

$$
a b
\frac{\frac{a}{x-y}+\frac{b}{x+y}} x−y + x+y
a−b
{1+\frac{a-b}{a+b}} 1+ a+b

$$

68
Matrices

$$
 
1 2 3
\left( \begin{array}{lll}  
1 & 2 & 3 \\4 & 5 & 6 \\7 & 8 & 9
 
4 5 6
 
\end{array}\right)
 
7 8 9
$$

$$  
\left( \begin{array}{ccc}  1 ··· n 
1 & \cdots & n \\2 & \cdots & n+1 \\
 
 
 2 ··· n + 1 
\vdots & \ddots & \vdots \\
 
 
 .. . . ..
n & \cdots & 2n-1

 . . . 
 
\end{array}\right)
 
n · · · 2n − 1
$$

\begin{equation*}
\begin{matrix} 0 & 1\\1 & 0 \end{matrix}\qquad
\begin{pmatrix} 0 & -i\\i & 0
\end{pmatrix}\qquad
\begin{bmatrix} a & b\\c & d \end{bmatrix}\qquad
\begin{vmatrix} 0 & 1\\-1 & 0
\end{vmatrix}\qquad
\begin{Vmatrix} f & g\\e & v \end{Vmatrix}
\end{equation*}

   

0 1 0 −i a b 
0 1 f g

   
−1 0

1 0 i 0 c d e v

69
Observe, en el último ejemplo, que el entorno alternativo equation* no
añade ninguna numeración a la ecuación.

Funciones a trozos

$$
\psi(x)=\begin{cases}
Ae^{ikx}+Be^{-ikx}, & \text{si $x=0$,}\\
De^{- kx}, & \text{si $x\neq 0$.}
\end{cases}
$$

Aeikx + Be−ikx , si x = 0,
ψ(x) =
De−kx , si x 6= 0.

Arriba y abajo

$$ a\stackrel{{\rm def}}{=} \alpha + \beta\quad


\stackrel{\beta \to 0}{\longrightarrow}
$$
def β→0
a = α+β −→

\begin{equation*}
\sum_{\substack{0\leq i\leq m\\0>j>n}}\phi(i,j)
\end{equation*}
X
φ(i, j)
0≤i≤m
0>j>n

\begin{equation*}
\sum^{\substack{0\leq i\leq m\\0>j>n}}\phi(i,j)
\end{equation*}
70
0≤i≤m
0>j>n
X
φ(i, j)

Adornos y operadores

abc
f \widetilde{abc} abc
c \widehat{abc}
←− −→
abc \overleftarrow{abc} abc \overrightarrow{abc}

abc \overline{abc} abc \underline{abc}

abc \overbrace{abc} \underbrace{abc}


z}|{
abc
|{z}
√ √
abc \sqrt{abc} n
abc \sqrt[n]{abc}

f0 f^\prime ~x \vec{x}

Números combinatorios

 
$${\n \choose k} = n
=
n!
\frac{n!}{k!\,(n-k)!}$$ k k! (n − k)!

Fracciones generalizadas y continuas

El comando \genfrac se puede utilizar para producir fracciones perso-


nalizadas, con la sintaxis:

\genfrac{Delim.Izqdo}{Delim.Derecho}{GrosorLínea}
{Tamaño}{Numerador}{Denominador}

Para Tamaño, se puede elegir entre los valores0, 1, 2 y 3, que corres-


ponden respectivamente a \displaystyle, \textstyle, \scriptstyle
y \scripscriptstyle.
71
$$\genfrac{\{}{\}}{0pt}{}{ij}{k}=      
ij k1 ij k2 ij
g^{k1}\genfrac{[}{]}{0pt}{}{ij}{1} =g +g
k 1 2
+g^{k2}\genfrac{[}{]}{0pt}{}{ij}{2}$$

Las fracciones continuas se obtienen a través del comando \cfrac.

4 12
\frac{4}{\pi}=1+\cfrac{1^2}{2+ =1+
π 32
\cfrac{3^2}{2+ 2+
\cfrac{5^2}{2+\dotsb}}} 52
2+
2 + ···

Los comandos \genfrac y \cfrac son propios del paquete amsmath.

13.3 Texto en expresiones matemáticas

La instrucción \text{texto } se usa para incluir texto en modo matemá-

tico. Éste comando se utiliza principalmente en los despliegues, ya que en

el discurso corriente el modo matemático está delimitado por los símbolos

$.

$$\text{Para todo }\varepsilon >0


\text{ existe }\delta >0\text{ tal que
}|x-a|<\delta
\text{ implica }|f(a)-f(x)|<\varepsilon.$$

Para todo ε>0 existe δ>0 tal que |x−a| < δ implica |f (a)−f (x)| < ε.

72
13.4 Tipos de letra en modo matemático

$\mathrm{abc...}$ abcdefghijklmnopqrstuvwxyz

$\mathrm{ABC...}$ ABCDEFGHIJKLMNOPQRSTUVWXYZ

$\mathit{abc...}$ abcdefghijklmnopqrstuvwxyz

$\mathit{ABC...}$ ABCDEFGHIJKLMN OPQRSTUVWXYZ

$\mathsf{abc...}$ abcdefghijklmnopqrstuvwxyz

$\mathsf{ABC...}$ ABCDEFGHIJKLMNOPQRSTUVWXYZ

$\mathtt{abc...}$ abcdefghijklmnopqrstuvwxyz

$\mathtt{ABC...}$ ABCDEFGHIJKLMNOPQRSTUVWXYZ

$\mathbf{abc...}$ abcdefghijklmnopqrstuvwxyz

$\mathbf{ABC...}$ ABCDEFGHIJKLMNOPQRS . . . XYZ

$\mathcal{ABC...}$ ABCDEFGHIJ KLMN OPQRS . . . X YZ

$\mathfrak{abc...}$ abcdefghijklmnopqrstuvwxyz

$\mathfrak{ABC...}$ ABCDEFGHIJKLMNOPQRSTUVWXYZ

$\mathbb{ABC...}$ ABCDEFGHIJKLMNOPQRSTUVWXYZ

Téngase en cuenta que los tipos \mathfrak y \mathbb requieren del pa-

quete amssymb.

13.5 Símbolos matemáticos en negrilla

El comando \mathbf afecta solamente a las letras del alfabeto ordinario,

a los números y a las letras griegas mayúscula no inclinadas. El pquete

amsmath incluye el comando \pmb (o \boldsymbol) con los que se obtienen


los símbolos en negrita.

73
$$\text{Para todo } \pmb{varepsilon} >0
\text{ existe }\pmb{delta} >0\text{ tal
que }|x-a|<\pmb{delta}\text{ implica
}|f(a)-f(x)|<\pmb{varepsilon}.$$

Para todo ε>0 existe δ>0 tal que |x−a| < δ implica |f (a)−f (x)| < ε .

13.6 Tamaño de fuente en modo matemático

Para realizar el cambio del tamaño del texto matemático se puede uti-

lizar los modicadores del texto normal, pero con la precaución de que

el modicador aplicado debe ser llamado antes de ingresar a un modo

matemático.

{\tiny $f_x:A\to\mathbb{R}^2$} f x : A → R2

{\small $f_x:A\to\mathbb{R}^2$} fx : A → R2

{\Large $f_x:A\to\mathbb{R}^2$} fx : A → R2

{\Huge $f_x:A\to\mathbb{R}^2$} f x : A → R2

13.7 Alineación de fórmulas

Para alinear fórmulas y/o separarlas en dos o más renglones el paque-

teamsmath dispone de una colección de sosticados entornos: multline,


gather, align, split, aligned, gatered y flalign.
Con cualquiera de estos entornos se puede usar el comando \intertext
para insertar renglones de texto en el despliegue. Solamente se puede usar

después de \\, y es especialmente útil con align, ya que preserva la ali-

neación.

multline

Se utiliza para dividir fórmulas, sin alinearlas, en dos o más renglones,

estos se separan con \\, el primer renglón aparece alineado a la izquier-

74
da, el último a la derecha y el resto centrados. Todo el texto recibe una

única numeración en el último renglón. El entorno multline* no produce


ninguna numeración.

\begin{multline}
(a+b)^3 = (a+b)(a+b)(a+b) \\
= (a^2 + 2ab + b^2)(a+b) \\
= (a+b)(a^2 + 2ab + b^2) \\
= a^3 + 3a^2b + 3ab^2 + b^3
\end{multline}

(a + b)3 = (a + b)(a + b)(a + b)


= (a2 + 2ab + b2 )(a + b)
= (a + b)(a2 + 2ab + b2 )
= a3 + 3a2 b + 3ab2 + b3 (1.1)

\begin{multline*}
(a+b)^3 = (a+b)(a+b)(a+b) \\
= (a^2 + 2ab + b^2)(a+b) \\
= (a+b)(a^2 + 2ab + b^2) \\
= a^3 + 3a^2b + 3ab^2 + b^3
\end{multline*}

(a + b)3 = (a + b)(a + b)(a + b)


= (a2 + 2ab + b2 )(a + b)
= (a + b)(a2 + 2ab + b2 )
= a3 + 3a2 b + 3ab2 + b3

75
gather

Con este entorno a diferencia de multline todos los renglones aparecen

centrados y para cada uno se genera una numeración. Usando el modi-

cador \notag se puede eliminar la numeración en renglones particulares.

Con la versión gather* no se produce numeración alguna.

\begin{gather}
(a+b)^3 = (a+b)(a+b)(a+b) \\
= (a^2 + 2ab + b^2)(a+b) \\
= a^3 + 3a^2b + 3ab^2 + b^3
\end{gather}

(a + b)3 = (a + b)(a + b)(a + b) (1.2)

= (a2 + 2ab + b2 )(a + b) (1.3)

= a3 + 3a2 b + 3ab2 + b3 (1.4)

\begin{gather}
(a+b)^3 = (a+b)(a+b)(a+b) \\
= (a^2 + 2ab + b^2)(a+b) \notag\\
= (a+b)(a^2 + 2ab + b^2) \\
= a^3 + 3a^2b + 3ab^2 + b^3 \notag
\end{gather}

(a + b)3 = (a + b)(a + b)(a + b) (1.5)

= (a2 + 2ab + b2 )(a + b)


= (a + b)(a2 + 2ab + b2 ) (1.6)

= a3 + 3a2 b + 3ab2 + b3

76
\begin{gather*}
(a+b)^3 = (a+b)(a+b)(a+b) \\
= (a^2 + 2ab + b^2)(a+b) \\
= a^3 + 3a^2b + 3ab^2 + b^3
\end{gather*}

(a + b)3 = (a + b)(a + b)(a + b)


= (a2 + 2ab + b2 )(a + b)
= a3 + 3a2 b + 3ab2 + b3

align

Este entorno a diferencia de gather permite alinear las fórmulas con res-

pecto a un símbolo al cual es necesario colocar inmediatamente antes un &.


Los renglones se separan con \\. Todos los renglones aparecen numerados.
Con el modicador \notag se puede eliminar la numeración en renglones

particulares; con la versión align* no se produce numeración alguna.

\begin{align}
(a+b)^3 &= (a+b)(a+b)(a+b) \\
&= (a^2 + 2ab + b^2)(a+b) \\
&= (a+b)(a^2 + 2ab + b^2) \\
&= a^3 + 3a^2b + 3ab^2 + b^3
\end{align}

(a + b)3 = (a + b)(a + b)(a + b) (1.7)

= (a2 + 2ab + b2 )(a + b) (1.8)

= (a + b)(a2 + 2ab + b2 ) (1.9)

= a3 + 3a2 b + 3ab2 + b3 (1.10)

77
\begin{align}
(a+b)^3 &= (a+b)(a+b)(a+b) \notag \\
&= (a^2 + 2ab + b^2)(a+b) \\
&= (a+b)(a^2 + 2ab + b^2) \\
&= a^3 + 3a^2b + 3ab^2 + b^3 \notag
\end{align}

(a + b)3 = (a + b)(a + b)(a + b)


= (a2 + 2ab + b2 )(a + b) (1.11)

= (a + b)(a2 + 2ab + b2 ) (1.12)

= a3 + 3a2 b + 3ab2 + b3

\begin{align*}
(a+b)^3 &= (a+b)(a+b)(a+b) \\
&= (a^2 + 2ab + b^2)(a+b) \\
&= (a+b)(a^2 + 2ab + b^2) \\
&= a^3 + 3a^2b + 3ab^2 + b^3
\end{align*}

(a + b)3 = (a + b)(a + b)(a + b)


= (a2 + 2ab + b2 )(a + b)
= (a + b)(a2 + 2ab + b2 )
= a3 + 3a2 b + 3ab2 + b3

split

Similar al entorno align, pero con la diferencia de que todo el despliegue


recibe un único número que aparece centrado verticalmente. Este entorno

debe estar bajo el alcance del entorno equation o align.


78
\begin{equation}
\begin{split}
(a+b)^3 &= (a+b)(a+b)(a+b) \\
&= (a^2 + 2ab + b^2)(a+b) \\
&= (a+b)(a^2 + 2ab + b^2) \\
&= a^3 + 3a^2b + 3ab^2 + b^3
\end{split}
\end{equation}

(a + b)3 = (a + b)(a + b)(a + b)


= (a2 + 2ab + b2 )(a + b)
(1.13)
= (a + b)(a2 + 2ab + b2 )
= a3 + 3a2 b + 3ab2 + b3

aligned

Sirve para construir bloques alineados independientes que pueden ser ubi-

cados unos al lado de otros, o de otro tipo de material (como paréntesis y

corchetes). Estos bloques aparecen centrados verticalmente, a menos que

se usen los argumentos opcionales t (tope) o b (base). Este entorno debe


estar bajo el alcance del entorno equation y con esto adquiere la numera-

ción de este entorno, para eliminar totalmente la numeración es necesario

utilizar el entorno equation*.

\begin{equation}
\begin{aligned}
a &= b + c + d \\
z &= x + y \\
m &= n

79
\end{aligned}
\qquad
\begin{aligned}
A &= B + C + D \\
Z &= X + Y
\end{aligned}
\qquad
\begin{aligned}
\phi &= \mu +\nu +\eta
\end{aligned}
\end{equation}

a=b+c+d
A=B+C +D
z =x+y φ=µ+ν+η (1.14)
Z =X +Y
m=n

\begin{equation*}
\begin{aligned}[t]
a &= b + c + d \\
z &= x + y \\
m &= n
\end{aligned}
\qquad
\begin{aligned}
\phi &= \mu +\nu +\eta
\end{aligned}
\end{equation*}

a=b+c+d A=B+C +D φ=µ+ν+η


z =x+y Z =X +Y
m=n

80
gathered

Sirve para construir bloques independientes cuyas fórmulas aparecen cen-

tradas horizontalmente que pueden ser ubicados unos al lado de otros,

o de otro tipo de material (como paréntesis y corchetes). Estos bloques

aparecen centrados verticalmente, a menos que se usen los argumentos

opcionales t (tope) o b (base). Este entorno debe estar bajo el alcance


del entorno equation y con esto adquiere la numeración de este entorno,

para eliminar totalmente la numeración es necesario utilizar el entorno

equation*.

\begin{equation}
\begin{gathered}[t]
a &= b + c + d \\
z &= x + y \\
m &= n
\end{gathered}
\qquad
\begin{gathered}[t]
A &= B + C + D \\
Z &= X + Y
\end{gathered}[t]
\qquad
\begin{gathered}
\phi &= \mu +\nu +\eta
\end{gathered}
\end{equation}

a=b+c+d A=B+C +D φ=µ+ν+η (1.15)

z =x+y Z =X +Y
m=n

81
\begin{equation*}
\begin{gathered}[b]
a &= b + c + d \\
z &= x + y \\
m &= n
\end{gathered}
\qquad
\begin{gathered}[b]
A &= B + C + D \\
Z &= X + Y
\end{gathered}[b]
\qquad
\begin{gathered}
\phi &= \mu +\nu +\eta
\end{gathered}
\end{equation*}

a=b+c+d
z =x+y A=B+C +D
m=n Z =X +Y φ=µ+ν+η

align

El entorno flalign se usa como align para construir bloques alineados,

pero que añade espacio proporcional entre columnas, de manera que el

despliegue se imprime de extremo a extremo de la página. Para separar la

columnas se utilizan &. Cada una de las líneas del despliegue adquiere un

número, pero se puede usar el comando \notag para eliminar la numera-

ción de renglones particulares. La versión estrella ( flalign*) no produce

numeración.

82
\begin{flalign}
a &= b + c & A &= B + C & \phi &= \mu + \nu + \eta\\
z &= x + y & Z &= X + Y \notag\\
m &= n
\end{flalign}

a=b+c A=B+C φ=µ+ν+η (1.16)

z =x+y Z =X +Y
m=n (1.17)

13.8 Uso del comando \intertext

El comando \intertext permite añadir líneas de texto en cualquiera de

los entornos de alineación, de tal manera que se preserva la alineación dada

por el entorno.

\begin{align}
\intertext{Dado que por la regla de la cadena se tiene la
igualdad}
(fg)^{\prime} &= f^{\prime}g + fg^{\prime}\\
\intertext{la cual se puede reescribir como}
fg^{\prime} &= (fg)^{\prime} - f^{\prime}g\\
\intertext{entonces se concluye que}
\int fg^{\prime} &= \int (fg)^{\prime} - \int f^{\prime}g
\end{align}

Dado que por la regla de la cadena se tiene la igualdad

(f g)0 = f 0 g + f g 0 (1.18)

83
la cual se puede reescribir como

f g 0 = (f g)0 − f 0 g (1.19)

entonces se concluye que

Z Z Z
f g0 = (f g)0 − f 0g (1.20)

13.9 Paréntesis y signos de agrupación

Para los símbolos de los paréntesis y de los corchetes se usan las teclas

AT X provee de una variada gama de


usuales, para los demás símbolos L E

comandos para producir dichos signos de agrupación. A continuación se

listan los comandos de los signos más usualmente utilizados.

{ \{ } \}

h \langle i \rangle

| | ó \vert k \| ó \Vert

b \lfloor c \rfloor

d \lceil e \rceil

Para aumentar el tamaño de los símbolos de agrupación se usan los

modicadores \left y \right antes del símbolo. Éstos se deben usar en

pares, de ser necesario, se usan los comandos \left. o \right. para

formar el par.

Los comandos \left y \right no producen los mejores resultados,

AT X provee los modicadores


para esto, L E \big, \Big, \bigg, \Bigg, los

84
cuales permiten tener un mejor control sobre el tamaño de los signos de

agrupación.

Además de los modicadores anteriores el paquete amsmath provee una


versión mejorada de éstos, en una versión de parejas de izquierda a derecha:

\bigl \bigr, \Bigl \Bigr, \biggl \biggr, \Biggl \Biggr.

$((a_1b_1)-(a_2b_2))
((a1 b1 ) − (a2 b2 ))((a2 b1 ) + (a1 b2 ))
((a_2b_1)+(a_1b_2))$

$\big((a_1b_1)-(a_2b_2)
\big)\big((a_2b_1)+
 
(a1 b1 ) − (a2 b2 ) (a2 b1 ) + (a1 b2 )
(a_1b_2)\big)$

$\bigg((a_1b_1)-(a_2b_2)   
\bigg)\bigg((a_2b_1)+ (a1 b1 ) − (a2 b2 ) (a2 b1 ) + (a1 b2 )
(a_1b_2)\bigg)$

$\Big((a_1b_1)-(a_2b_2)   
\Big)\Big((a_2b_1)+ (a1 b1 ) − (a2 b2 ) (a2 b1 ) + (a1 b2 )
(a_1b_2)\Big)$

$\Bigg((a_1b_1)-(a_2b_2) ! !
\Bigg)\Bigg((a_2b_1)+ (a1 b1 ) − (a2 b2 ) (a2 b1 ) + (a1 b2 )
(a_1b_2)\Bigg)$

85
13.10 Teoremas y estructuras relacionadas

El comando \newtheorem{<nombre >}{<rótulo >} (que es preferible ubi-


car en el preámbulo del documento) dene una estructura numerada,

creando el entorno <nombre > con su respectivo contador. <rótulo > apa-

rece impreso cuando se invoca el entorno.

\documentclass{book}
..
.

\newtheorem{miteorema}{Teorema}
\newtheorem{micorolario}{Corolario}
..
.

\begin{document}
..
.

\begin{miteorema}
El conjunto $G\subset K\big[\bar{X}\big]$, $0\not\in
G$, es una base de Gröbner sí y sólo si $\forall f\in
{\rm Id}(G)$ con $f\not=0$ se tiene una representación
estándar de $f$ en $G$.
\end{miteorema}
\begin{miteorema}
Sea $G\subset K\big[\bar{X}\big]$ finito y con
$0\not\in G$, Supongamos que: $\forall g_1,g_2\in
G$, ${\rm spol}(g_1,g_2)$ es igual a cero o tiene
una $t$-representación en $G$, para algún $t<{\rm
mcm}(HM(g_1),HM(g_2))$; entonces $G$ es una base de
Gröbner.
\end{miteorema}
\begin{micorolario}
Para todos lo polinomios $p\in I$, se define la
aplicación $v_1(p)=HM\big(w\big(HM(p)\big)\big)$.
Entonces $\forall p_1,p_2\in I$ con $HM(p_1)\not=HM(p_2)$
86
se tiene que $v_1(p_1)\not=v_1(p_2)$.
\end{micorolario}
..
.

\end{document}

Teorema 1 El conjunto G ⊂ K X̄ , 0 6∈ G, es una base de Gröbner sí y


 

sólo si ∀f ∈ Id(G) con f 6= 0 se tiene una representación estándar de f


en G.

Teorema 2 Sea G ⊂ K X̄
 
nito y con 0 6∈ G, Supongamos que:
∀g1 , g2 ∈ G, spol(g1 , g2 ) es igual a cero o tiene una t-representación en

G, para algún t < mcm(HM (g1 ), HM (g2 )); entonces G es una base de

Gröbner.

Corolario 1 Para todos lo polinomios p ∈ I , se dene la aplicación



v1 (p) = HM w HM (p) . Entonces ∀p1 , p2 ∈ I con HM (p1 ) 6=
HM (p2 ) se tiene que v1 (p1 ) 6= v1 (p2 ).

El comando \newtheorem permite que los entornos, que dena el usua-


rio, adquieran una numeración subordinada respecto de los capítulos, sec-

ciones, etc.

\documentclass{book}
..
.

\newtheorem{miteorema}{Teorema}[section]
\newtheorem{micorolario}{Corolario}[section]
..
.

\begin{document}
..
. \begin{miteorema}

El conjunto $G\subset K\big[\bar{X}\big]$, ... se tiene


una representación estándar de $f$ en $G$.
\end{miteorema}
87
\begin{miteorema}
Sea $G\subset K\big[\bar{X}\big]$ ... entonces $G$ es una
base de Gröbner.
\end{miteorema}
\begin{micorolario}
Para todos lo polinomios $p\in I$, ... se tiene que
$v_1(p_1)\not=v_1(p_2)$.
\end{micorolario}
..
.

\end{document}

Teorema 13.1 El
 
conjunto G ⊂ K X̄ , ... se tiene una representación

estándar de f en G.

Teorema 13.2 Sea G ⊂ K X̄


 
nito y con 0 6∈ G, ... entonces G es una

base de Gröbner.

Corolario 13.1 Para todos lo polinomios p ∈ I , ... se tiene que v1(p1) 6=


v1 (p2 ).

El comando \newtheorem también permite que la numeración de los

entornos denidos por el usuario sea correlativa, y no como en el caso

previo que cada entorno se numeraba por separado.

\documentclass{book}
..
.

\newtheorem{miteorema}{Teorema}[section]
\newtheorem{micorolario}[miteorema]{Corolario}
..
.

\begin{document}
..
.

88
\begin{miteorema}
El conjunto $G\subset K\big[\bar{X}\big]$, ... se tiene
una representación estándar de $f$ en $G$.
\end{miteorema}
\begin{miteorema}
Sea $G\subset K\big[\bar{X}\big]$ ... entonces $G$ es una
base de Gröbner.
\end{miteorema}
\begin{micorolario}
Para todos lo polinomios $p\in I$, ... se tiene que
$v_1(p_1)\not=v_1(p_2)$.
\end{micorolario}
..
.

\end{document}

Teorema 13.1 El
 
conjunto G ⊂ K X̄ , ... se tiene una representación

estándar de f en G.

Teorema 13.2 Sea G ⊂ K X̄


 
nito y con 0 6∈ G, ... entonces G es una

base de Gröbner.

Corolario 13.3 Para todos lo polinomios p ∈ I , ... se tiene que v1(p1) 6=


v1 (p2 ).

El texto de los entornos denidos por el usuario están, por defecto,

en modo enfático. Es posible cambiar el modo enfático a modo normal

utilizando el comando \rm.

\documentclass{book}
..
.

\newtheorem{miteorema}{Teorema}[section]
\newtheorem{micorolario}[miteorema]{Corolario}
..
.

89
\begin{document}
..
.

\begin{miteorema}
{\rm El conjunto $G\subset K\big[\bar{X}\big]$, ... se
tiene una representación estándar de $f$ en $G$.}
\end{miteorema}
\begin{miteorema}
{\rm Sea $G\subset K\big[\bar{X}\big]$ ... entonces $G$
es una base de Gröbner.}
\end{miteorema}
\begin{micorolario}
{\rm Para todos lo polinomios $p\in I$, ... se tiene que
$v_1(p_1)\not=v_1(p_2)$.}
\end{micorolario}
..
.

\end{document}

Teorema 13.1 El
 
conjunto G ⊂ K X̄ , ... se tiene una representación

estándar de f en G.

Teorema 13.2 Sea G ⊂ K X̄


 
nito y con 0 6∈ G, ... entonces G es una

base de Gröbner.

Corolario 13.3 Para todos lo polinomios p ∈ I , ... se tiene que v1(p1) 6=


v1 (p2 ).

14 Listas

Existen tres tipos de entornos para crear listas formateadas

\begin{enumerate} texto listado \end{enumerate}

\begin{itemize} texto listado \end{itemize}

\begin{description} texto listado \end{description}


90
14.1 Entorno enumerate

1. Se trata de listas secuenciadas numéricamente.

2. Los números son consecutivos comenzando por 1, en cada llamada

al entorno.

\begin{enumerate}
\item Se trata de listas secuenciadas numéricamente.
\item Los números son consecutivos comenzando por 1, en
cada llamada al entorno.
\end{enumerate}

6. Es posible inicializar la numeración a partir de un número diferente

de 1 utilizando el comando \addtocounter.

7. Por ejemplo, aquí se inicializa la numeración a partir de 6.

\begin{enumerate}
\addtocounter{enumi}{5}
\item Es posible inicializar la numeración a partir de
un número diferente de 1 utilizando el comando \texttt
{\textbackslash addtocounter}.
\item Por ejemplo, aquí se inicializa la numeración a
partir de 6.
\end{enumerate}

14.2 Entorno itemize

Cada uno de los items son indicados con un símbolo determinado.

La longitud del texto no tiene límite.

\begin{itemize}
\item Cada uno de los \emph{items} son indicados con un
símbolo determinado.
91
\item La longitud del texto no tiene límite.
\end{itemize}

14.3 Entorno description

Primero: Parece claro el funcionamiento de este entorno.


Observación: No es un entorno demasiado frecuente.

\begin{description}
\item[Primero:] Parece claro el funcionamiento de este
entorno.
\item[Observación:] No es un entorno demasiado frecuente.
\end{description}

14.4 Listas anidadas

Las listas previas pueden ser incluidas unas dentro de otras, tanto del mis-

mo como de distinto tipo, hasta cuatro niveles de inclusión (por defecto).

El siguiente es un ejemplo que muestra listas mixtas, con cuatro niveles

de inclusión:

Primer nivel en itemize

1. Primer nivel en enumerate (segundo nivel global)

ˆ Segundo nivel en enumerate (tercero global)

a ) Segundo en enumerate (cuarto global)

b ) Segundo elemento del cuarto nivel

ˆ Vuelta al tercer nivel global (segundo en itemize)


2. Segundo nivel (primer en enumerate)

Primer nivel

92
\begin{itemize}
\item Primer nivel en {\tt itemize}
\begin{enumerate}
\item Primer nivel en {\tt enumerate} (segundo nivel
global)
\begin{itemize}
\item Segundo nivel en {\tt enumerate} (tercero global)
\begin{enumerate}
\item Segundo en {\tt enumerate} (cuarto global)
\item Segundo elemento del cuarto nivel
\end{enumerate}
\item Vuelta al tercer nivel global (segundo en {\tt
itemize})
\end{itemize}
\item Segundo nivel (primer en {\tt enumerate})
\end{enumerate}
\item Primer nivel
\end{itemize}

14.5 Manipulación de etiquetas en el entorno enumerate

El estilo de numeración y las etiquetas que señalan cada lista son con-

gurables fácilmente. En el entorno enumerate, las etiquetas por defecto

son:

1. Etiqueta de primer nivel

a ) Etiqueta de segundo nivel

1) Etiqueta de tercer nivel

0
a Etiqueta de cuarto nivel
0
b Etiqueta de cuarto nivel

2) Etiqueta de tercer nivel

b ) Etiqueta de segundo nivel

2. Etiqueta de primer nivel

93
\begin{enumerate}
\item Etiqueta de primer nivel
\begin{enumerate}
\item Etiqueta de segundo nivel
\begin{enumerate}
\item Etiqueta de tercer nivel
\begin{enumerate}
\item Etiqueta de cuarto nivel
\item Etiqueta de cuarto nivel
\end{enumerate}
\item Etiqueta de tercer nivel
\end{enumerate}
\item Etiqueta de segundo nivel
\end{enumerate}
\item Etiqueta de primer nivel
\end{enumerate}

La numeración por defecto en la lista de nivel uno está formada por

números arábigos, el nivel dos por letras en minúsculas, el nivel tres son

números nuevamente y el cuatro, letras con apóstrofe. Cada una de estas

etiquetas puede cambiarse redeniendo apropiadamente los comandos que

las generan. Tales comandos son: \theenumi, \theenumii, \theenumiii


y \theenumiv, uno para cada nivel. Mientras que las etiquetas que gene-

ran la construcción de dichos comandos son \labelenumi, \labelenumii,


\labelenumiii y \labelenumiv. Si se quiere cambiar este comportamien-
to por defecto en cualquier nivel, es necesario redenir ambos comandos,

justo antes del inicio del entorno correspondiente. Por ejemplo,

1. Etiqueta de primer nivel

1.1. Etiqueta de segundo nivel

1.1.1. Etiqueta de tercer nivel

1.1.1.1. Etiqueta de cuarto nivel

1.1.1.2. Etiqueta de cuarto nivel

1.1.2. Etiqueta de tercer nivel

94
1.2. Etiqueta de segundo nivel

2. Etiqueta de primer nivel

\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumi.\theenumii.}
\renewcommand{\labelenumiii}{\theenumi.\theenumii.
\theenumiii.}
\renewcommand{\theenumiv}{\arabic{enumiv}}
\renewcommand{\labelenumiv}{\theenumi.\theenumii.
\theenumiii.\theenumiv.}
\begin{enumerate}
\item Etiqueta de primer nivel
\begin{enumerate}
\item Etiqueta de segundo nivel
\begin{enumerate}
\item Etiqueta de tercer nivel
\begin{enumerate}
\item Etiqueta de cuarto nivel
\item Etiqueta de cuarto nivel
\end{enumerate}
\item Etiqueta de tercer nivel
\end{enumerate}
\item Etiqueta de segundo nivel
\end{enumerate}
\item Etiqueta de primer nivel
\end{enumerate}

O, podría ser,

1) Etiqueta de primer nivel

1.1) Etiqueta de segundo nivel

1.1.1) Etiqueta de tercer nivel

1.1.1.1) Etiqueta de cuarto nivel

1.1.1.2) Etiqueta de cuarto nivel

95
1.1.2) Etiqueta de tercer nivel

1.2) Etiqueta de segundo nivel

2) Etiqueta de primer nivel

\renewcommand{\labelenumi}{\theenumi)}
\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumi.\theenumii)}
\renewcommand{\labelenumiii}{\theenumi.\theenumii.
\theenumiii)}
\renewcommand{\theenumiv}{\arabic{enumiv}}
\renewcommand{\labelenumiv}{\theenumi.\theenumii.
\theenumiii.\theenumiv)}
\begin{enumerate}
\item Etiqueta de primer nivel
\begin{enumerate}
\item Etiqueta de segundo nivel
\begin{enumerate}
\item Etiqueta de tercer nivel
\begin{enumerate}
\item Etiqueta de cuarto nivel
\item Etiqueta de cuarto nivel
\end{enumerate}
\item Etiqueta de tercer nivel
\end{enumerate}
\item Etiqueta de segundo nivel
\end{enumerate}
\item Etiqueta de primer nivel
\end{enumerate}

Los comandos que permiten cambiar el estilo de la numeración son

\arabic (números arábigos), \roman, \Roman (numeración romana, en


minúsculas y mayúsculas) y \alph, \Alph (numeración alfabética, en mi-
núsculas y mayúsculas). Téngase en cuenta que listas alfabéticas con más

elementos que letras del alfabeto generará errores en la compilación.

96
I
[ ] Etiqueta de primer nivel

I
[ -A] Etiqueta de segundo nivel

[I-B ] Etiqueta de segundo nivel

[ II] Etiqueta de primer nivel

\renewcommand{\theenumi}{\Roman{enumi}}
\renewcommand{\labelenumi}{[\textbf{\theenumi}]}
\renewcommand{\theenumii}{\Alph{enumii}}
\renewcommand{\labelenumii}{[\textbf{\theenumi}-
\textit{\theenumii}]}
\begin{enumerate}
\item Etiqueta de primer nivel
\begin{enumerate}
\item Etiqueta de segundo nivel
\item Etiqueta de segundo nivel
\end{enumerate}
\item Etiqueta de primer nivel
\end{enumerate}

14.6 Manipulación de etiquetas en el entorno itemize

El esquema de etiquetas por defecto en este entorno es $\blacksquare$


() en el nivel uno, $\bullet$ (•) en el nivel dos, $\circ$ (◦) en el
nivel tres y $\diamond$ () en el nivel cuatro. La modicación de estas

etiquetas se lleva a cabo redeniendo los comandos del nivel correspodiente

\labelitemi, \labelitemii, \labelitemiii y \labelitemiv.

Etiqueta de primer nivel

ˆ Etiqueta de segundo nivel

◦ Etiqueta de tercer nivel

 Etiqueta de cuarto nivel

 Etiqueta de cuarto nivel

97
◦ Etiqueta de tercer nivel

ˆ Etiqueta de segundo nivel

Etiqueta de primer nivel

\begin{itemize}
\item Etiqueta de primer nivel
\begin{itemize}
\item Etiqueta de segundo nivel
\begin{itemize}
\item Etiqueta de tercer nivel
\begin{itemize}
\item Etiqueta de cuarto nivel
\item Etiqueta de cuarto nivel
\end{itemize}
\item Etiqueta de tercer nivel
\end{itemize}
\item Etiqueta de segundo nivel
\end{itemize}
\item Etiqueta de primer nivel
\end{itemize}

Por ejemplo, para cambiar la etiqueta de nivel uno por un trébol puede

hacerse

♣ Etiqueta de primer nivel

♣ Etiqueta de primer nivel

\renewcommand{\labelitemi}{$\clubsuit$}
\begin{itemize}
\item Etiqueta de primer nivel
\item Etiqueta de primer nivel
\end{itemize}
98
15 Inclusión de grácos

15.1 Grácos en LATEX

AT X son el
Los formatos más recomendables para incluir grácos en L E

Encapsulated PostScript (EPS) y el formato PostScript (PS). Si usamos

AT X, los formatos más comunes son PDF, PNG o JPG. Los archivos
PDFL E

son insertados mediante el comando \includegraphics. Para poder usar


dicho comando es preciso cargar el paquete digitando

\usepackage{graphicx}

en el preámbulo.

15.2 El comando \includegraphics

La sintaxis de este comando es

\includegraphics[<opciones >]{<nombre del archivo >}

Algunas opciones disponibles son

width Anchura del gráco.

height Altura del gráco.

scale Dene un factor de escala a aplicar en ambas

direcciones.

angle Especica un ángulo de rotación en grados

sexagesimales.

natwidth Especica la anchura originaria del gráco

cuando es PNG, o JPG y aun así se va a

AT X.
incluir en L E

natheight Especica la altura originaria del gráco

cuando es PNG o JPG y aun así se va a

AT X.
incluir en L E

99
\includegraphics[width=2cm]{logo.eps}

\includegraphics[width=2cm,
height=1cm]{logo.eps}

\includegraphics[height=2cm,
angle=45]{logo.eps}

\includegraphics[scale=0.25,
angle=60]{logo.eps}

15.3 Figuras otantes

La inclusión de guras puede presentar problemas a la hora de ubicarlas

en el texto pues al no poder ser divididas no pueden aparecer en cualquier

punto del documento. Para resolver este problema, es necesario tratar

este tipo de objetos como objetos otantes, que son situados donde el

compilador estima conveniente.

15.4 Creación de guras otantes

Las guras otantes se crean con el entornofigure, en cuyo interior si-


tuamos el correspondiente gráco con \includegraphics. La sintaxis del

entorno es

100
Figura 1.54 Ejemplo de gura

\begin{figure}[<posición >]
\centering
\includegraphics{gura }
\caption{<pie de la gura >}
\label{<etiqueta >}
\end{figure}

Los comandos \caption y \label son opcionales y sirven para situar


una leyenda para la gura, que aparecerá numerada. Dicha numera-

ción se asignará a la etiqueta \label. El comando \label debe ser

situado inmediatamente después del \caption.

Si el comando \caption no aparece se cre auna gura sin numerar.

El comando \listoffigures (normalmente situado al inicio del do-

cumento) genera una lista con todas las guras incluidas en el docu-

mento.

El comando \caption puede llevar un argumento opcional que espe-

cica el texto que aparecerá en la Lista de Figuras. En caso de no

aparecer, dicho texto es el mismo que el argumento obligatorio del

comando.

La gura otante 1.54 ha sido creada con el siguiente código

\begin{figure}
\centering
\includegraphics[scale=0.25]{logo.eps}
\caption{Ejemplo de figura}
\label{ej}
\end{figure}

101
15.5 Posicionamiento de guras

La posición en la que la gura aparece en el texto está determinada por

el argumento opcional que puede ser una (o más de una) de las siguientes

letras h, t, b, p.

h Sitúa la gura allí donde aparece el entorno. Esta

opción no puede ser ejecutada siempre, pues es

posible que el gráco no entre en el espacio de

página que reste.

t Sitúa la gura en la parte superior de la página.

b Sitúa la gura en la parte inferior de la página.

p Sitúa la gura en una página separada.

Si no se especica la posición, el compilador toma por defecto la secuen-

cia [tbp].
AT X leerá la gura y la tendrá
Cuando se incluye una gura otante, L E

en memoria hasta que encuentre una posición que considere adecuada para

incluirla en el texto.

15.6 El paquete subfigure

El paquete subfigure permite introducir guras con más de un gráco.

Para utilizarlo debe colocarse en el preámbulo

\usepackage{subfigure}

Por ejemplo, la gura 1.55 se ha creado con el código

102
(a) It is a little logo (b) It is a big logo

Figura 1.55 Varias grácas en una gura

\begin{figure}
\centering
\subfigure[It is a little logo]{
\qquad\includegraphics[scale=0.15]{logo.eps}\qquad}
\subfigure[It is a big logo]{
\qquad\includegraphics[scale=0.25]{logo.eps}\qquad}
\caption{Varias gráficas en una figura}
\label{ej2}
\end{figure}

16 Tablas

Las tablas son construcciones alineadas que, en principio, no pueden apa-

recer en más de una página. El entorno para producir tales construcciones

es tabular, cuya sintaxis es

\begin{tabular}[<pocisión >]{<colocación >}


las

\end{tabular}

El signicado de los argumentos es el siguiente

posición Posición vertical de la tabla respecto de la línea base. Puede

tomar los valores

t la línea superior de la tabla se alinea con la línea base,


b la línea inferior de la tabla se alinea con la línea base.
Si no aparece el parámetro, se centrará respecto de la línea base.

103
colocación Alineación de las columnas. Debe aparecer una entrada por

cada columna de la tabla además de entradas opcionales para delimi-

tar los bordes entre cada columna. Los formatos posibles para cada

columna son

l alineación a la izquierda,
c la columna aparecerá centrada,
r alineación a la derecha,
p{wd} elemento tipo párrafo. El texto aparecerá en un párrafo de
anchura wd, con la línea superior alineada con las otras columnas,

*{num}{cols} abreviación para repetición de formato. Por ejemplo,


*{3}{c} es equivalente a ccc.

Los elementos para separación de columnas son

| dibuja una línea vertical,


|| dibuja dos líneas verticales próximas,
@{texto} inserta texto entre dos columnas. Útil para cuando los valores
de una misma columna deben estar separados por una marca deter-

minada (guión, punto decimal, etc.) La expresión @{texto } elimina el

espacio automático que se pone entre cada columna y lo sustituye por

el texto. Si se necesita espacio blanco extra, debe ser implícitamente

incluido.

16.1 Filas

Cada una de las las tendrá la estructura siguiente

elemento1 & elemento2 & . . . & elementon \\

Es decir, el símbolo & se utiliza para separar dos columnas consecutivas


y el comando \\ para separar una la de la siguiente. Todas las las, salvo
la última debe ser nalizada con este comando.

104
Otros comandos son

\hline este comando dibuja una línea horizontal entre la y la. Debe

aparecer sólo antes de la primera la, o justo a continuación de \\.


Dos comandos \hline dibujan dos líneas con un pequeño espacio entre
ellas.

\cline{n − m} como el comando \hline, dibuja una línea horizontal en-


tre la columna n hasta la columna m. Sólo puede aparecer detrás de

\\ y puede haber más de uno.

\vline este comando dibuja una línea vertical en la línea en la que aparece
de altura correspondiente a la la en la que se encuentra.

\multicolumn{<número>}{col}{texto} engloba un número de colum-


nas dado por número bajo una columna simple cuya anchura corres-

ponde a las que engloba, con formato dado en col y con el contenido

de texto.

16.2 Ejemplos

\begin{tabular}{|l|c|r|}
\hline
uno & dos & tres \\
\hline
cuatro & cinco & seis \\
\hline
\end{tabular}

uno dos tres

cuatro cinco seis

105
\begin{tabular}{|l|c|r|}
\hline
\multicolumn{3}{|c|}{Tabla con
números}\\
\hline\\
uno & dos & tres \\
\hline \hline
cuatro & cinco & seis \\
\cline{1-2} siete & ocho & nueve \\
\cline{2-3}
diez & once & doce \\
\cline{1-2} trece &
\multicolumn{2}{c}{catorce} \\
\hline
\end{tabular}

Tabla con números

uno dos tres

cuatro cinco seis

siete ocho nueve

diez once doce

trece catorce

106
\begin{tabular}{|lrrc|}
\hline
País & Total & Indígenas & Porcentaje \\
\hline\hline
Bolivia & 6,9 & 4,9 & 71 \\
\hline
Guatemala & 8,0 & 5,3 & 66 \\
\hline
Perú & 20,0 & 9,3 & 47 \\
\hline
Ecuador & 9,5 & 4,15 & 43 \\
\hline
\end{tabular}

País Total Indígenas Porcentaje

Bolivia 6,9 4,9 71

Guatemala 8,0 5,3 66

Perú 20,0 9,3 47

Ecuador 9,5 4,15 43

\begin{tabular}{|l|r@{,}l|r|}
\hline
Estados Unidos & 14 & 7 & 10,5 \\
\hline
Italia & 1 & 82 & 0,25 \\
\hline
Francia & 3 & 4 & 0,6 \\
\hline
\end{tabular}

107
Estados Unidos 14,7 10,5

Italia 1,82 0,25

Francia 3,4 0,6

Cuadro 1.1 Ejemplo de tabla.

\begin{tabular}{|@{\textbf{\ Capítulo }}r %


@{:\quad Lecciones }r %
@{\thinspace-\thinspace}l@{\ }|}
\hline
\textbf{1} & 1 & 8 \\
\textbf{2} & 9 & 11 \\
\textbf{3} & 12 & 20 \\
\hline
\end{tabular}

Capítulo 1: Lecciones 1-8

Capítulo 2: Lecciones 9 - 11

Capítulo 3: Lecciones 12 - 20

\begin{tabular}{|p{3.5cm}|p{2cm}|}
\hline
Esto es un párrafo insertado dentro
de la celda de una tabla. &
El uso de larguísimas y absolutamente
eternas palabras crea un mal efecto. \\
\hline
& bienaventurado. \\
\hline
\end{tabular}

108
Esto es un párra- El uso de

fo insertado den- larguí-

tro de la celda de simas y

una tabla. absolu-

tamente

eternas

pala-

bras crea

un mal

efecto.

bienaventurado.

Para evitar la justicación a ambos lados están los comandos \raggedright


(justiación a derecha), \raggedleft (izquierda) o \centering

AT X nunca divide la primera palabra de un párrafo,


Por otra parte, L E

de modo que es necesario iniciar el párrafo con algo (un espacio vacío, por

ejemplo).

El ejemplo anterior se puede corregir del siguiente modo

\begin{tabular}{|p{3.5cm}|p{2cm}|}
\hline
\raggedright Esto es un párrafo insertado dentro
de la celda de una tabla. &
\raggedright El uso de larguísimas y absolutamente
eternas palabras crea un mal efecto.
\tabularnewline
\hline
& \hspace{0cm}bienaventurado. \\
\hline
\end{tabular}
109
Esto es un El uso de

párrafo insertado larguísi-

dentro de la mas y

celda de una absoluta-

tabla. mente

eternas

palabras

crea un

mal

efecto.

bienaven-

turado.

Obsérvese cómo se ha usado el comando \tabularnewline en lugar de


\\. Ambos son equivalentes, pero en este caso el segundo produce mensajes
de error que son evitados con el primero.

16.3 Parámetros de estilo

AT X, y puede ser
El estilo de las tablas está denido por defecto por L E

cambiado, globalmente en el preámbulo, o de forma local, no dentro del

entorno.

Los parámetros para realizar cambios de estilo en las tablas son

\tabcolsep corresponde a la mitad de la anchura del espacio insertado

entre dos columnas (valor por defecto: 6pt),

\arrayrulewidth es el grosor de las líneas que conforman la tabla (valor


por defecto: 0.4pt),

\doublerulesep es la separación entre las líneas dobles (valor por defecto:


2pt),

110
\arraystretch modica la distancia entre las las. Se trata de un factor
multiplicativo, de modo que el valor estándar corresponde a 1, y un

valor de 1.5 aumenta un 50 % la distancia.

Para realizar modicaciones en estos parámetros se usan las siguientes

declaraciones

\setlength\tabcolsep{<dimensión >}

\setlength\arrayrulewidth{<dimensión >}

\setlength\doublerulesep{<dimensión >}

\renewcommand{\arraystretch}{<factor >}

\setlength{\tabcolsep}{20pt}
\setlength{\arrayrulewidth}{2pt}
\renewcommand{\arraystretch}{3}
\begin{tabular}{|l|c|r|}
\hline
uno & dos & tres \\
\hline
cuatro & cinco & seis \\
\hline
\end{tabular}

uno dos tres

cuatro cinco seis

16.4 Tablas como objetos otantes

Al igual que las guras, las tablas no deberían (salvo excepciones) ser se-

paradas en más de una página, por lo que su ubicación debería ser deter-

111
minada por el compilador. Para tratar las tablas como un objeto otante

disponemos del entorno table, cuya sintaxis es

\begin{table}[<posición >]
\centering
entorno tabular
\caption{<pie de la tabla >}
\label{<etiqueta >}
\end{table}

Por ejemplo, la tabla 1.2 ha sido generada con el siguiente código

\begin{table}
\centering
\begin{tabular}{|l||c|c|l|}
\hline
$a^n$ & 1 & 2 & 3 \\
\hline\hline
1 & 1 & 1 & 1\\\cline{2-4}
2 & 2 & 4 & 8\\\cline{2-4}
3 & 3 & 9 & 27\\\cline{2-4}
4 & 4 & 16 & 64\\\hline
\end{tabular}
\caption{Potencias}
\label{ejt}
\end{table}

an 1 2 3

1 1 1 1

2 2 4 8

3 3 9 27

4 4 16 64

Cuadro 1.2 Potencias

112
17 Referencias cruzadas

17.1 ¾Qué son las referencias cruzadas?

Es habitual en los documentos cientícos hacer referencias a partes del

documento como capítulos, secciones, fórmulas, tablas, guras, etc. Cada

AT X por orden
uno de estos elementos es numerado automáticamente por L E

de aparición, pero si queremos hacer una referencia a alguno de ellos, no

es necesario conocer dicho número.

El procedimiento consiste en etiquetar el entorno en cuestión, de manera

que el compilador almacena el número de referencia para un posterior uso.

Por ejemplo, la subsección inicial de esta sección (subsección 17.1) ha

sido etiquetada del siguiente modo

\subsection{¾Qué son las referencias


cruzadas?\label{subsec:intro}}

y la referencia de la línea anterior ha sido producida con

...inicial de esta sección (subsección


\ref{subsec:intro}) ha sido etiquetada ...

La etiqueta \label{sec:intro} no es necesario que siga inmediata-


mente al argumento de \section, es decir, puede ser situada en cualquier

parte de la sección, pero no debe interferir con otro elemento susceptible

de numeración.

La primera vez que se compila el chero que contiene referencias cruza-

das, (p.e. fichero.tex) la información sobre las referencias es almacenada


en el chero fichero.aux y al nal de la compilación L AT Ximprime el
E

siguiente aviso

LaTeX Warning: There were undefined references.


LaTeX Warning: Label(s) may have changed.
Rerun to get cross-references right.
Una segunda compilación sobre el documento pondrá las referencias

correctamente.

113
La clave con la que nombramos una etiqueta puede ser cualquier se-

cuencia de letras, dígitos o caracteres de puntuación, teniendo en cuenta

AT X distingue entre mayúsculas y minúsculas.


que L E

17.2 Entornos referenciables

Listas

Además de la numeración de capítulos o secciones, cada elemento de un

entorno enumerate puede ser etiquetado añadiendo el correspondiente co-

mando \label a cada entrada \item. Por ejemplo

En el silogismo clásico
\begin{enumerate}
\item Todos los hombres son mortales.\label{pre1}
\item Sócrates es un hombre.\label{pre2}
\item Por tanto, Sócrates es mortal.\label{con}
\end{enumerate}
Las afirmaciones (\ref{pre1}) y (\ref{pre2})
son las premisas y (\refcon) es la
conclusión.

En el silogismo clásico

1) Todos los hombres son mortales.

2) Sócrates es un hombre.

3) Por tanto, Sócrates es mortal.

Las armaciones (1) y (2) son las premisas y (3) es la conclusión.

Elementos otantes

Las guras y tablas pueden ser también referenciadas teniendo cuidado en

situar el comando \label justo después del comando \caption o incluso

dentro de su argumento, como en el ejemplo mostrado a continuación

114
\begin{table}[h]
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Valor de $x$ & 1 & 2 & 3 \\
\hline
Valor de $y$ & 1 & 8 & 27 \\
\hline
\end{tabular}
\caption{Valores observados de $x$ e $y$}\label{tabxy}
\end{center}
\end{table}
Dos posibles relaciones entre $x$ e $y$ que satisfacen
los datos de la Tabla \ref{tabxy} son $y=x^3$ e
$y=6x^2-11x+6$.

Valor de x 1 2 3

Valor de y 1 8 27

Cuadro 1.3 Valores observados de x e y

Dos posibles relaciones entre xey que satisfacen los datos de la Tabla
3 2
1.3 son y=x e y = 6x − 11x + 6.

Matemática

En los documentos con contenido matemático abundan las referencias, ya

sea a fórmulas, guras, teoremas, etc. El proceso de etiqueta es igual al

hecho anteriormente: es necesario incluir el comando \label dentro del

entorno correspondiente.

Si se ha denido el entorno \newtheorem{thm}{Teorema} (vea la Sec.

13.10), entonces

115
\begin{thm}\label{diffcon}
Toda función diferenciable es continua.
\end{thm}
El recíproco del Teorema \ref{diffcon} es falso.

Teorema 17.1 Toda función diferenciable es continua.

El recíproco del Teorema 17.1 es falso.

En el caso de las ecuaciones se tiene

\begin{equation}\label{sumsq}
(x+y)^2=x^2+2xy+y^2
\end{equation}
Cambiando $y$ por $-y$ en (\ref{sumsq}) resulta \ldots

(x + y)2 = x2 + 2xy + y 2 (1.21)

Cambiando y por −y en (1.21) resulta . . .

El paquete amsmath permite usar el comando \eqref en lugar de \ref


para referenciar una ecuación, con la diferencia de que el primero imprime

automáticamente los paréntesis alrededor del número.

Referenciación de páginas

En lugar de hacer referencia al número de tabla o de ecuación, a menudo

es útil dar la numeración de la página donde se encuentra dicho objeto. El

comando

\pageref{<etiqueta >}

imprime el número de la página en la que se encuentra \label{<etiqueta >}.


Por ejemplo

116
véase la Tabla \ref{tabxy} en la página
\pageref{tabxy}.

produce

véase la Tabla 1.3 en la página 115.

18 Notas al pie y al margen

18.1 Comandos para insertar pies de página

Para insertar una nota al pie de página se usa el comando

\footnote[<número >]{<texto de la nota >}

Éste comando inserta una nota al pie de página con el texto de <texto

de la nota >y el número especicado en <número >. si <número >se omite,

se usa la numeración automática. Este comando no se admite dentro de

una caja, ni dentro de otro \footnote, ni dentro del entorno \tabular.


Las notas al pie de página dentro de una mini-página aparecen en la

parte inferior de ésta, no en la parte inferior de la página vigente.

Por ejemplo, el siguiente código

Mi primera nota\footnote{Numerada atomáticamente} y mi


segunda nota\footnote[201]{Numerada específicamente.}.

Produce

11 201
Mi primera nota y mi segunda nota .

y las respectivas notas aparecen al pie de esta página.

11 Con numeración atomática


201 Con numeración especíca.

117
18.2 Inserción de pies de página en lugares prohibidos

El comando \footnotemark[<número >] produce sólo la marca que se-

ñala la nota al pie de página en el texto. El argumento <número >funciona

igual que el de \footnote.


El comando \footnotetext[<número >]{<texto de la nota >} produ-
ce la nota al pie de página, sin insertar ninguna marca. El argumento

<número > especica el símbolo que identica la nota. Este comando está

restringido, así como \footnote.


Los comandos \footnotemark y \footnotetext se usan en conjunción
para crear notas en sitios no permitidos, primero insertando la marca en

el lugar prohibido y luego colocando el texto fuera del sitio prohibido,

simulando así el pie en la página.

18.3 Modicación de los contadores de los pies de página

El comando \renewcommand{\thefootnote}{<estilo >} permite modi-

car el estilo de la marca que señala las notas al pie de página.

\arabic{footnote} produce marcas con la numeración por defecto:

1, 2, 3, . . .

\roman{footnote} produce marcas con números romanos en minús-

culas: i, ii, iii, . . .

\Roman{footnote} produce marcas con números romanos en mayús-


culas: I, II, III, . . .

\alph{footnote} produce marcas con la letsras del alfabeto en mi-

núsculas: a, b, c, . . .

\Alph{footnote} produce marcas con la letsras del alfabeto en ma-

yúsculas: A, B, C, . . .

\fnsymbol{footnote} produce marcas con símbolos: *, „, ...

118
18.4 Notas al margen

La inclusión de notas al margen es similar a la de las notas al pie. El

comando es

\marginpar[<TextoIzquierda >]{<TextoDerecha >}

Este comando crea una nota al margen cuyo contenido TextoDerecha (si

se elude el argumento opcional) comienza a imprimirse a la misma altura

en la que se imprime la línea de texto principal. Si se emplea la opción

oneside, la nota se imprime a la derecha, y si se usa la opción twoside,

en el exterior.

Si se usa el argumento opcional, el texto TextoIzquierda aparecerá cuan-

do la nota corresponda al margen izquierdo y el texto TextoDerecha lo hará

cuando la nota esté en el margen derecho. Por ejemplo

Cuéntame poeta cómo es la luna y no la de un tal Louis


Armstrong. No olvides poeta tu sueño de volar con
la pluma del ala y la necesidad. Cuéntame poeta si
es el desamor lo que constituye el diccionario del
amor\ldots\marginpar{Ariel\\Dufey\\Ramos.}.

produce

Cuéntame poeta cómo es la luna y no la de un tal Louis Armstrong. No

olvides poeta tu sueño de volar con la pluma del ala y la necesidad. Cuén-

tame poeta si es el desamor lo que constituye el diccionario del amor. . . . Ariel

Dufey

19 Inserción de texto plano Ramos.

Los archivos de texto plano (en inglés plain text) son aquellos que están
compuestos únicamente por texto sin formato, sólo caracteres. Estos ca-

racteres se pueden codicar de distintos modos dependiendo de la lengua

usada. Algunos de los sistemas de codicación más usados son: ASCII,

ISO-8859-1 o Latín-1, Unicode, etc. . . .

119
Se les conoce también como archivos de texto llano, o texto simple, por

carecer de información destinada a generar formatos (negritas, subrayado,

cursivas, tamaño, etc.) y tipos de letra (por ejemplo, Arial, Times, Courier,

etc.).

AT X cuenta con el entorno


L E \minipage para imprimir texto plano.

Los caracteres reservados pierden su signicado especial y son impresos

literalmente. Los espacios y cambios de renglón son tenidos en cuenta. La

capacidad del texto impreso es bastante limitada.

\begin{verbatim}
head(expr):=block(
if symbolp(expr) then symbol
elseif numberp(float(expr)) then real
elseif not freeof( %i,expr) then complex
else part(expr,0) )$
\end{verbatim}

head(expr):=block(
if symbolp(expr) then symbol
elseif numberp(float(expr)) then real
elseif not freeof(%i,expr) then complex
else part(expr,0) )$

El comando \verb@texto @ se usa para imprimir una sola línea de texto


plano.

20 Bibliografía

20.1 El entorno thebibliography

La bibliografía es el entorno que permite al autor listar las referencias

utilizadas y citarlas en algún punto del texto. La estructura es similar a la

de una lista enumerada donde cada entrada viene marcada por el comando

\bibcite y es referenciada desde el comando \cite, que producirá un

número de referencia o el nombre del autor, según sea el estilo escogido.

120
El entorno se dene del siguiente modo

\begin{thebibliography}[<etiqueta mayor >]


\bibitem[<leyenda1 >]{<referencia1 >} Título, autor, ...
\bibitem[<leyenda2 >]{<referencia2 >} Título, autor, ...
\end{thebibliography}

El argumento etiqueta mayor indica la anchura de la mayor etiqueta que

vaya a aparecer. Por ejemplo, si vamos a introducir entre 10 y 99 publica-

ciones, entonces deberemos comenzar con \begin{thebibliography}[99].


Si vamos a referenciar con el nombre del autor, entonces debemos poner el

nombre más largo que vayamos a usar, \begin{thebibliography}[nombre].


El argumento opcional de \bibitem, leyenda se utiliza para modicar

la identicación en la lista de referencias, en lugar de un número. El argu-

mento referencia será la etiqueta usada para referenciar la cita. Se usa a

través del comando \cite:


\cite{etiqueta1 }
\cite{etiqueta1,etiqueta2,...}

Si queremos añadir algún dato más a la referencia (número de página

donde aparece, o el capítulo, etc.) usamos un argumento opcional

\cite[página 25 ]{etiqueta1 }

12
El siguiente código muestra un ejemplo de funcionamiento del entorno .

La referencia clásica en \LaTeX\ es \cite{GH}.


Otras referencias interesantes son \cite{GU,Kn}
.
.
.
\begin{thebibliography}{9}
.
.
.
12 La bibliografía que aparece en dicho código corresponde a la bibliografía de este libro.

121
\bibitem{GH}
Griffiths, D and Higham, D. LEARNING LATEX.
The Society for Industrial and Applied Mathematics (1997).
\bibitem{Gu}
Gurari, E. WRITING WITH TEX. McGraw-Hill, Inc. (1994).
\bibitem{Kn}
Knuth, D. THE TEXBOOK.
Adisson-Wesley Publishing Company (1991).
.
.
.
\end{thebibliography}
AT X es [3]. Otras referencias interesantes son
La referencia clásica en L E

[4, 5]

20.2 Índice de contenidos

El entorno bibliografía crea una sección del documento a modo de capítulo

(si la clase de documento es report) o sección (si la clase es article).


Sin embargo no aparece listado en el índice de contenidos. Para introducir

dicho capítulo o sección en el índice es necesario añadir una línea como la

que sigue

\addcontentsline{<ExtensiónFichero >}{<Unidad >}


{<TextoEntrada >}
El parámetro ExtensiónFichero se reere a uno de los cheros donde

AT X almacena información sobre índices de contenido, de guras o tablas.


L E

Las extensiones respectivas son toc, lof o lot.


El argumento Unidad se reere a qué tipo de unidad de estructura

queremos asimilar dicha entrada, es decir, si se trata de una sección, un

capítulo, etc. Los valores serán section, chapter, etc.

El TextoEntrada el lo que deseamos que apareza en el índice corres-

pondiente. Así, la entrada a incluir será

\addcontentsline{toc}{chapter}{Bibliografía}
122
21 El programa BibTex

La elaboración de entornos para bibliografía puede automatizarse cómo-

damente usando el programa BibTEX. Dicho programa crea un entorno

bibliográco para un documento concreto a partir de una base de datos

previamente construida. De este modo, sólo es necesario mantener una

base de datos y recurrir a ella para construir la bibliografía de cada docu-

mento que escribamos.

La base de datos consiste en uno o varios archivos con extensión .bib


que deben poseer una estructura concreta. Por cada referencia debemos

incluir una entrada en dicho archivo, que será etiquetada de forma similar

a lo que se hace en un \bibitem.


En el momento en el que aparezca una cita a una de las referencias de

nuestra base de datos, ésta seré autométicamente incluida en la bibliografía

del mismo a través del programa BibTEX.

Para usar dicho programa debemos incluir en nuestro archivo fuente un

comando que llame a la base o bases de datos que queramos utilizar, del

siguiente modo

\bibliography{database1,database2 }

El comando anterior especica que las entradas bibliográcas se coloca-

rán en la posición en la que aparece dicho comando y serán extraídas de

los archivos database1.bib y database2.bib13 .


El estilo que aparecerá en la bibliografía viene especicado por el coman-

do \bibliographystyle, que determinará el formato en el que aparecerán


las diferentes entradas. Por ejemplo

\bibliographystyle{plain}

especica que las entradas serán formateadas según el estilo plain que

se encuentra descrito en el chero ( plain.bst). Es posible situar este co-

mando en cualquier punto del documento después de \begin{document}.


13 Atención al path en el que se encuentre el archivo.

123
21.1 Estilos de BibTeX

plain Estilo estándar. Las entradas son numeradas correlativamente por


orden alfabético de autores.

unsrt Similar al estilo plain, pero las entradas son numeradas en el orden
en que son citadas en el documento.

alpha Se diferencia con el estilo plain, en que las etiquetas de las entradas
están formadas por el nombre del autor y el año de publicación, en

lugar de ser números.

abbrv Similar al estilo plain, pero las entradas son más compactas, que-
dando abreviados los nombres de pila de los autores, las revistas, etc.

acm Estilo usado en las revistas de la ACM (Association for Computing


Machinery).

apalike Estilo usado en las revistas de la American Psychology Associa-


tion. Precisa del paquete apalike.

Además varias organizaciones, revistas, etc. han desarrollado sus pro-

pios estilos bibliográcos, algunos de los cuales vienen con la distribución

MiKTEX (véase C:\Archivos de programa\MiKTeX 2.9\bibtex\bst).

21.2 Pasos para ejecutar BibTeX con LaTeX

AT X, se generará un listado de referencias para cada co-


1) Al correr L E

mando \cite que esté presente. Dicho listado aparecerá en el chero

auxiliar .aux.

2) Ejecutar BibTEX, el cual leerá dicho chero, las bases de datos y el

chero de estilo y escribirá un chero .bbl que contiene un entorno


bibliografía formateado según el hero .bst escogido. Los errores o

avisos serán escritos en un chero .blg.

AT X, se lee el chero
3) En la siguiente compilación de L E .bbl.

4) Una tercera compilación resuelve todas las referencias cruzadas.

124
Nótese que las referencias que aparecerán en el texto son aquellas que

hayan sido citadas mediante \cite, y no todas las presentes en la base de


datos .bib.
En ocasiones, es posible querer incluir publicaciones que no son explí-

citamente citadas. Pare ellos usamos el comando \nocite en cualquier

parte del documento. Dicho comando no produce texto alguno pero hace

que la referencia citada sea incluida por BibTEX. El comando \nocite{*}


hace que todas las entradas de la base de datos sean incluidas.

21.3 Creación de bases de datos bibliográcas

La ventaja principal del uso del programa BibTEXes la no necesidad de

escribir un listado de referencias para cada documento. Las referencias

son escritas una sola vez y almacenadas en la base (o bases) de datos

correspondiente para usos futuros.

No obstante, es necesario crear las entradas de la base de datos según

un formato especíco. Lo que sigue es un ejemplo de entrada

@BOOK{knuth:86a,
AUTHOR ="Donald E. Knuth",
TITLE ={The \TeX{}book},
EDITION ="third"
PUBLISHER ="Addison-Wesley",
ADDRESS ={Reading, MA},
YEAR =1986}

La primera palabra, prejada por @, determina el tipo de entrada, que

variará según el tipo de publicación que sea: libros, artículos, prepublica-

ciones, etc. El resto de la información es escrita entre llaves, comenzan-

do por la etiqueta (la que usaremos para la referencia con el comando

\cite), En el ejemplo anterior pondríamos \cite{knuth:86a}. El resto

de la información sobre la referencia es introducida mediante varios cam-

pos, separados por comas, en el formato que se aprecia. Los espacios son

opcionales. La información de cada campo puede ser incluida entre llaves

125
o entre comillas dobles; sin embargo, si la información del campo consta

únicamente de números, no son necesarios los delimitadores. Cada tipo de

entrada tiene una serie de campos requeridos y otros opcionales. En caso

de ausencia de algún campo requerido BibTEX dará un informe de error.

Los tipos de referencias, los campos requeridos y los opcionales son

@article Artículos en revistas.

campos requeridos autor, title, journal, year.

campos opcionales volume, number, pages, month, note.

@book Libros con editorial conocida.

campos requeridos author or editor, title, publisher, year.

campos opcionales volume or number, series, address, edition, month,

note.

@booklet Libros sin conocimiento de la editorial que lo publique.

campos requeridos title.

campos opcionales author, howpublished, address, month, year, note.

@conference Artículo en un recopilatorio de una conferencia.

campos requeridos author, title, booktitle, year.

campos opcionales editor, volume or number, series, pages, address,

month, organization, publisher, note.

@inbook Entrada para una parte de un libro.

campos requeridos author or editor, title, chapter and/or pages, publis-

her, year.

campos opcionales volume or number, series, type, address, edition,

month, note.

@incollection Entrada para una parte de un libro con título propio.

campos requeridos author, title, booktitle, publisher, year.

campos opcionales editor, volume or number, series, type, chapter, pa-

ges, address, edition, month, note.

@inproceedings Artículo en las publicaciones de un congreso.

campos requeridos author, title, booktitle, year.

126
campos opcionales editor, volume or number, series, pages, address,

month, organization, publisher, note.

@manual Entrada para documentación de tipo técnico.

campos requeridos title.

campos opcionales author, organisation, address, edition, month, year,

note.

@masterthesis Entrada para proyecto, tesina o master.

campos requeridos author, title, school, year.

campos opcionales type, address, month, note.

@misc Documento que no se ajusta a ninguno de los demás tipos.

campos requeridos none.

campos opcionales author, title, howpublished, month, year, note.

@phdthesis Tesis doctoral.

campos requeridos author, title, school, year.

campos opcionales type, address, month, note.

@proceedings Recopilatorio de artículos de una conferencia o congreso.

campos requeridos title, year.

campos opcionales editor, volume or number, series, address, month,

organization, publisher, note.

@unpublished Documento no publicado con título y autor.

campos requeridos author, title, note.

campos opcionales month, year.

127
2 La clase beamer

1 Esquema general

La clase beamer AT X para la creación de diapositivas.


es una clase de L E

\documentclass[<opciones>]{beamer}
< declaraciones: temas, paquetes, comandos >
Preámbulo
< título >, < autor >, < fecha >

\begin{document}



 \maketitle


\begin{frame}





..


.





 \end{frame}

Documento
..
.





\begin{frame}





..


.





 \end{frame}

\end{document}
128
2 Comandos y entornos importantes en la clase beamer

\maketitle Fuerza a que se produzcan las líneas

para el título, autor y fecha. Al omi-

tirlo no se generará la diapositiva del

título.

frame Entorno para insertar una nueva dia-

positiva.

3 Primeros pasos

La estructura básica de un archivo beamer es bastante simple. Considere

el siguiente código:

\documentclass{beamer}

\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\deftranslation[to=spanish]{Theorem}{Teorema}
\usepackage{multicol}

\title{La clase beamer en \LaTeX}


\author{A. U. Tor
\thanks{Catedrático, UNP, autor@unp.edu.pe}}

\begin{document}

\maketitle

\begin{frame}{Primera diapositiva}

Una fórmula:

129
\[\int_{-\infty}^\infty e^{-x^2} \, dx = \sqrt{\pi}\]

Una lista:

\begin{multicols}{2}
\begin{itemize}
\item itemized item 1
\item itemized item 2
\item itemized item 3
\end{itemize}
\begin{enumerate}
\item enumerated item 1
\item enumerated item 2
\item enumerated item 3
\end{enumerate}
\end{multicols}

\begin{theorem}
En un triángulo rectángulo, el cuadrado de la hipotenusa
es igual a la suma de los cuadrados de los otros dos lados.
\end{theorem}

\end{frame}

\end{document}

el cual produce las diapositivas que se muestran en las guras 2.1 y 2.2.

4 Temas

El aspecto general de una diapositiva beamer se puede alterar drástica-


mente mediante la aplicación de un tema beamer a la diapositiva.

Por ejemplo el siguiente código, en el cual se usa el tema Madrid :

\documentclass{beamer}
130
Figura 2.1 Diapositiva del título.

Figura 2.2 Una diapositiva elemental.

131
\usetheme{Madrid}

\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\deftranslation[to=spanish]{Theorem}{Teorema}
\usepackage{multicol}

\title{La clase beamer en \LaTeX}


\author{A. U. Tor
\thanks{Catedrático, UNP, autor@unp.edu.pe}}

\begin{document}

\maketitle

\begin{frame}{Primera diapositiva}

Una fórmula:

\[\int_{-\infty}^\infty e^{-x^2} \, dx = \sqrt{\pi}\]

Una lista:

\begin{multicols}{2}
\begin{itemize}
\item itemized item 1
\item itemized item 2
\item itemized item 3
\end{itemize}
\begin{enumerate}
\item enumerated item 1
\item enumerated item 2

132
Figura 2.3 Diapositiva del título.

\item enumerated item 3


\end{enumerate}
\end{multicols}

\begin{theorem}
En un triángulo rectángulo, el cuadrado de la hipotenusa
es igual a la suma de los cuadrados de los otros dos lados.
\end{theorem}

\end{frame}

\end{document}

el cual produce las diapositivas que se muestran en las guras 2.3 y 2.4.

Compare las diapositivas de las guras 2.3 y 2.4 con las de las guras

2.1 y 2.2, y observe los cambios drásticos, incluyendo el marco añadido

alrededor del teorema, los marcadores 3D redondeados para las listas, y la

franga inferior que incluye la fecha y número de la diapositiva, entre otras

cosas.

133
Figura 2.4 Una diapositiva elemental.

5 Temas estándar beamer

beamer viene con una gran selección de temas. Los temas llevan el nombre
de varias ciudades, como Boadilla, Madrid, Copenhague, y Singapur, don-

de el autor y sus colaboradores han creado los diseños de las diapositivas.

Algunos temas son:

Boadilla Copenhagen

Madrid
Warsaw
Pittsburgh

Rochester (traba- Singapore

ja mejor como

\usetheme[height=7mm]{Rochester}) Malmoe

6 Temas menores

beamer también proporciona lo que puede considerarse temas menores.

Estos controlan algunos aspectos de la apariencia de una diapositiva. Pue-

de invocar uno o más de estos temas menores, en relación con un tema

principal para alterar/modicar las características del tema principal.

Los Temas menores beamer se dividen en 4 categorías:

134
Temas outer controlan las decoraciones de una diapositiva, como el texto
y los grácos que aparecen en la cabecera de una diapositiva y las

secciones de pie de página. Por ejemplo, \useoutertheme{shadow}


añade una sombra en 3-D a algunos elementos del encabezado.

Temas inner controlan el área interior de una diapositiva, tales como

marcadores/viñetas para ítemes listas y cajas colocadas alrededor de

teoremas. Por ejemplo, \useinnertheme{rounded} da un aspecto re-


dondeado y 3-D a las cajas que contienen teoremas cajas y los mar-

cadores de ítemes.

Temas font controlan formas de fuentes y tamaños de diversos elementos


de una presentación de diapositivas. Por ejemplo,

\usefonttheme{serif} cambia las fuentes del documento a serif (el

valor predeterminado es sans-serif ).

Temas color controlan los colores del título, título de cuadro, viñetas,

y muchos otros elementos de una presentación de diapositivas. Por

ejemplo, \usecolortheme{albatross} cambia de color el beamer por


defecto de forma bastante drástica.

7 Personalizar temas

Hay un gran número de formas en que se puede ajustar con precisión el

aspecto general de un tema beamer. Aquí se van a describir algunas ideas


que pueden ser de utilidad.

A lo largo de esta sección, se usa el tema Rochester. El lector puede

aplicar estas ideas a cualquier otro tema beamer.

Observación: La opción [height=7mm] (usado en los ejemplos de las


subsecciones siguientes) especica el espesor de la banda horizontal que

aparece en el borde superior de una diapositiva cuyo tema es Rochester.

Téngase en cuenta que esta opción es especíca de Rochester. No se aplica

a otros temas.

135
Código de una parte del preámbulo
\documentclass{beamer}
\usetheme[height=7mm]{Rochester}

Figura 2.5 Color almacenado en structure, por defecto.

8 Modicación de color con structure

El color, por defecto, almacenado en structure corresponde con un cierto


matiz de azul como se puede ver en la gura 2.5.

El resultado de cambiar el color almacenado en structure a Brown se

puede ver en la gura 2.6. Nótese cómo la estructura afecta a muchos ele-

mentos, entre ellos las viñetas y los iconos de navegación. El color Brown

es uno de un gran número de nombres de color denidos en el archivo

dvipsnam.def AT X. La
que forma parte de la distribución estándar de L E

gura 2.7 muestra más posibles colores. Adicionalmente, se cuenta con los

colores denidos en svgnam.def que también forma parte de la distribu-

AT X(ver Fig. 2.8).


ción estándar de L E

9 Especicación de colores con RGB

Si el conjunto de colores denidos en dvipsnam.def llegara a parecer de-

masiado limitado, es posible denir nuestros propios colores especicando

sus componentes RGB. Cada componente RGB debe estar en el rango de

136
Código de una parte del preámbulo
\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=Brown]{structure}
\usetheme[height=7mm]{Rochester}

Figura 2.6 Color almacenado en structure cambiado a Brown.

Figura 2.7 Los 68 colores estándar incluidos en dvipsnam.def.

137
Figura 2.8 Los 148 colores estándar incluidos en svgnam.def.

138
Código de una parte del preámbulo
\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=Plum]{structure}
\usetheme[height=7mm]{Rochester}
\setbeamertemplate{items}[ball]

Figura 2.9 Color almacenado en structure cambiado a un color


similar a oro, el cual se dene con RGB.

0 − 255. Por ejemplo, con RGB={205,173,0} conseguimos un color similar


a oro (ver Fig. 2.9).

Las componentes de RGB se pueden administrar ya sea como enteros en

el rango de 0−255 o como números fraccionarios en el rango de 0.00−1.00.


Para especicar este último, utilice la versión en minúsculas de la opción

rgb, como en: rgb={0.2264,0.1561,0.0000}.

10 Uso directo del color almacenado en structure

El comando \textcolor{red}{texto en color} produce un texto en


color. Aquí, el color, red, asignado al texto es estático. Un efecto dinámico

se logra mediante el uso del comando \structure{texto en color}. El

texto dado será colorado según el color almacenado en structure. Cuando

se cambia el color almacenado en structure, por ejemplo del azul al oro,

el color del texto cambiará de acuerdo con el cambio.

139
Código de una parte del preámbulo
\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=Plum]{structure}
\usetheme[height=7mm]{Rochester}
\setbeamertemplate{items}[ball]

Figura 2.10 Marcadores de entornos de lista simulando esferas.

11 Cambio de los marcadores de entornos de lista

El tema Rochester usa marcadores cuadrados para las listas con viñetas y

listas numeradas. El comando \setbeamertemplate{items}[ball] cam-


bia los marcadores para simular esferas, como se muestra en la gura 2.10.

Entre las posibles opciones a \setbeamertemplate{items} tenemos:

ball esferas
circle discos
rectangle rectángulos
default triangles

12 Cajas redondeadas y sombras

Para añadir esquinas redondeadas y una sombra a la caja que rodea el teo-

rema se usa \setbeamertemplate{blocks}[rounded][shadow=true] (ver


Fig. 2.11).

140
Código de una parte del preámbulo
\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=OliveGreen]{structure}
\usetheme[height=7mm]{Rochester}
\setbeamertemplate{items}[ball]
\setbeamertemplate{blocks}[rounded][shadow=true]

Figura 2.11 Diapositiva con cajas redondeadas y sombras.

Para conseguir esquinas redondeadas, pero sin sombras, ajuste el valor

de shadow así: [shadow=false].

13 Deshacerse de los iconos de navegación

La mayoría de los temas beamer ponen una la de iconos de navegación

en las diapositivas. (Vea las pequeñas marcas a lo largo del borde infe-

rior de la diapositiva que se muestra en la gura 2.11.) Para desactivar

el dibujo de los iconos de navegación en las diapositivas, añada el comando:

\setbeamertemplate{navigation symbols}{} a su documento (ver Fig.


2.12).

14 Adición de una footline informativo


Una footline es una estrecha franja a lo largo del borde inferior de una

diapositiva que muestra el nombre del autor, el título de la presentación,

el número de diapositiva y otra información útil.

141
Código de una parte del preámbulo
\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=Apricot]{structure}
\usetheme[height=7mm]{Rochester}
\setbeamertemplate{items}[ball]
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamertemplate{navigation symbols}{}

Figura 2.12 Diapositiva sin iconos de navegación.

Los temas beamer Boadilla y Madrid proporcionan un footline por de-

fecto. Otros temas no lo hacen. Sin embargo, es posible añadir un footline

a cualquier tema por medio del comando \useoutertheme{infolines}


(ver Fig. 2.13).

Recuerde que debe colocar\useoutertheme{infolines} antes de

\usetheme[height=7mm]{Rochester}, en caso contrario se cortará el tí-

tulo de la diapositiva.

15 La portada

beamer proporciona una manera fácil de hacer una portada para su presen-
tación. En el siguiente código se usa el comando \maketitle para generar

una portada y una diapositiva sencilla (ver Figs. 2.14 y 2.15).

\documentclass{beamer}
\usetheme{Madrid}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
142
Código de una parte del preámbulo
\documentclass[xcolor=dvipsnames]{beamer}
\usecolortheme[named=Apricot]{structure}
\useoutertheme{infolines}
\usetheme[height=7mm]{Rochester}
\setbeamertemplate{items}[ball]
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamertemplate{navigation symbols}{}
\usepackage[latin1]{inputenc}
\author{Robert Ipanaqué}
\title{Clase Beamer}
\institute{UNP}

Figura 2.13 Diapositiva con footline añadido.

143
\deftranslation[to=spanish]{Theorem}{Teorema}

\author[R. Ipanaqué]{Robert Ipanaqué Chero}

\title[Monotonía y Concavidad con el \emph{Mathematica}]


{ Intervalos de Monotonía y Concavidad de Funciones No
Trascendentes con el \emph{Mathematica} }

\subtitle{Uso de Programación Funcional}

\institute[UNP]{
Departamento Académico de Matemática\\
Universidad Nacional de Piura\\
Urb. Miraflores s/n, Castilla, Piura, PERÚ\\[2ex]
\texttt{robertchero@hotmail.com} }

\begin{document}

\maketitle

\begin{frame}{Una diapositiva sencilla}


Hola.
\end{frame}

\end{document}

15.1 Elementos de la portada

Los elementos de la portada se especican a través de los comandos \title,


\subtitle, \author, \institute, \date. Los datos proporcionados a es-
tos comandos no sólo aparecen en la portada, sino también en la sección

footline de las diapositivas siguientes (ver Fig. 2.15).

Cada elemento de la portada se puede especicar mediante un único

argumento, como en:

144
Figura 2.14 Portada.

Figura 2.15 Obsérvese que parte de la información proporciona-


da en el preámbulo, tal como el título, autor, etc, también aparece
en el footline de la diapositiva que sigue a la portada.

145
\title{Universidad Nacional de Piura}

o usando dos argumentos, como en:

\title[UNP]{Universidad Nacional de Piura}

El argumento opcional, UNP (entre corchetes) es la forma abreviada del

nombre del instituto.

Las formas largas de los elementos de la portada se utilizan en la porta-

da. Las formas cortas de tales elementos se utilizan en los pies de página

de las diapositivas posteriores. Tenga en cuenta que si una forma corta no

se proporciona, a continuación, la forma larga se utilizan en los pies de

página. Si formas largas son demasiado largas, los pies de página pueden

quedar ilegibles.

16 Inclusión de grácos

beamer reconoce imágenes en cualquiera de los formatos: pdf, png y jpg

(tenga en cuenta que PostScript no está entre estos).

El siguiente código genera dos diapositivas. En la primera se incluyen

dos grácos, sin entorno, y en la segunda un gráco dentro del entorno

gure (ver Figs. 2.16 y 2.17).

\documentclass{beamer}

\usetheme{Copenhagen}

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

\begin{document}

\begin{frame}{Gráficos}
Los intervalos de monotonía de la función
$\sqrt[3]{x^2-2x}$:
146
Figura 2.16 Grácos sin entorno.

\begin{center}
\includegraphics[scale=0.8]{f7}\\[3ex]
\includegraphics[scale=0.5]{f8}
\end{center}
\end{frame}

\begin{frame}
Aquí tenemos los intervalos de concavidad:
\begin{figure}
\includegraphics[scale=0.8]{f9}
\caption{Intervalos de concavidad de la función
$\sqrt[3]{x^2-2x}$.}
\end{figure}
\end{frame}

\end{document}

16.1 Conversión de una imagen Encapsulated PostScript a pdf

Una imagen Encapsulated PostScript es aquella almacenada en un archivo

AT X realice la conversión automática de una


de extensión eps. Para que L E

147
Figura 2.17 Gráco dentro del entorno gure.

imagen en formato eps a pdf, y así poder incluirla en una diapositiva,

bastará con colocar en el preámbulo:

\usepackage{epstopdf}

17 Overlays

Probablemente, el efecto más interesante conseguido por beamer son las

superposiciones, que dan la apariencia de exposición con pausas de una

diapositiva. Lograr el efecto de superposición en beamer es bastante sim-

ple: basta con insertar el comando \pause en cualquier lugar en el que

desee colocar pausar la pantalla. Por ejemplo, use el eiguiente código para

exponer en una lista con viñetas el contenido de un artículo (ver Fig. 2.18).

\documentclass{beamer}

\usetheme{default}
\usepackage[latin1]{inputenc}

\begin{document}

\begin{frame}{Resumen de la charla}

148
Figura 2.18 Al compilar el archivo respectivo en formato pdf y
mostrarlo con un visor de PDF, como el Acrobat Reader, los ítemes
se exponen uno a uno a medida que se avance a través de la página
del documento en la forma habitual.

\begin{itemize}
\item Introducción
\pause
\item Declaración del teorema principal
\pause
\item Prueba del teorema principal
\pause
\item Conclusiones
\end{itemize}

\end{frame}

\end{document}
149
El uso del comando \pause no se limita a las listas, es posible utilizarlo
en cualquier lugar en una diapositiva. Por ejemplo, el siguiente código

produce los resultados mostrados en la gura 2.19.

\documentclass{beamer}

\usetheme{Copenhagen}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\deftranslation[to=spanish]{Definition}{Definición}

\begin{document}

\begin{frame}

\begin{definition}[Identificación]
Una aplicación $ f:X\to Y $ entre dos espacios topológicos
es una \textit{identificación} si es continua y biyectiva.
\end{definition}

\pause

\begin{definition}[Suma Topologica]
Sean $ X $ e $ Y $ dos espacios topológicos y sea

\pause

\[ X\oplus Y=X\times\{0\}\cup Y\times\{1\}\;. \]

\pause

Es posible identificar de forma natural a $ X $ con


$ X\times\{0\} $ y a $ Y $ con $ Y\times\{1\} $, de modo
que ahora $ X\cap Y=\emptyset $. Considerando a $ X\oplus Y $
150
Figura 2.19 Un visor de pdf expondrá el archivo resultante de
un párrafo a la vez.

con la topología para la cual un conjunto $ A $ es abierto


si y sólo si $ A\cap X $ es abierto en $ X $ y $ A\cap Y $
es abierto en $ Y $. Al espacio $ X\oplus Y $ se le llamará
suma topológica de $ X $ e $ Y $.
\end{definition}

\end{frame}

\end{document}

18 Navegar con hipervínculos

Durante una presentación de diapositivas, a veces es necesario saltar va-

rias diapositivas para volver a recordar a la audiencia una fórmula o una

imagen. Nadie quiere ir a la página en cuestión a través de 17 diapositivas

y volver a través de las mismas a donde se encontraba inicialmente.

151
Los hipervínculos de un archivo pdf le permiten saltar de una diaposi-

tiva a cualquier otra con un clic del ratón.

El código dado más abajo dene dos diapositivas. (El lector debe ima-

ginar que se trata de un gran número de diapositivas que no se muestran

aquí para ahorrar espacio.) Una de las diapositivas se identica con la

etiqueta label=intro en su comando \begin{frame}. Esta es nuestra

diapositiva objetivo.

La otra diapositiva contiene el código \hyperlink{intro}{aquí}. La

palabra aquí aparecerá en rojo en el visor de pdf (el color de los hiper-

vínculos se prescribe en el comando \hypersetup). Al hacer clic en aquí,


el visor va a saltar a la diapositiva etiquetada con intro.

Alternativamente, un hipervínculo puede ser dibujado como un botón

beamer. Por ejemplo, para crear un botón con el texto aquí en él, ha-

cemos: \hyperlink{intro}{\beamerbutton{aquí}}.
Hay cuatro estilos de botones diferentes disponibles:

\beamerbutton{aquí}:
\beamergotobutton{aquí}:
\beamerskipbutton{aquí}:
\beamerreturnbutton{aquí}:

Los botones sólo tienen apariencia diferente, pero todos hacen lo mismo.

Utilice el que mejor se ajusta a su propósito.

He aquí el código que genera las dos diapositivas mencionadas en el

tercer párrafo de esta sección, las cuales se muestran en la gura 2.20.

\documentclass{beamer}

\usetheme{Copenhagen}
\hypersetup{colorlinks=true,linkcolor=red}

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

152
Figura 2.20 Dos diapositivas vinculadas.

\begin{document}

\begin{frame}[label=intro]{Introducción}

Esta es la introducción.

\end{frame}

\begin{frame}{Otra diapositiva}

Si hace clic \hyperlink{intro}{aquí}, saltará a la


diapositiva etiquetada con ``intro''.

Haciendo clic \hyperlink{intro}{\beamerbutton{aquí}}


también saltará a dicha diapositiva.

\end{frame}

\end{document}

18.1 Volviendo a la página de llamada

Ahora ya sabe cómo saltar de la página N1 a la página N2 . Pero, ¾cómo

regresar a la página N1 ? Bueno, puede desplazarse por todas las páginas

153
intermedias para llegar allí, pero eso no es muy profesional. Para ir a la

página de donde vino en un solo paso:

Si usa Acrobat Reader:

En Linux y Windows: presione en simultáneo las teclas Alt y Left


Arrow.
En Mac: presione en simultáneo las teclas Cmd y Left Arrow.

Si usa Xpdf:

Presione la tecla b.

Observación: Otra manera de volver a la página de llamada sería me-


diante la adición de otro hipervínculo que funcione en el sentido opuesto.

Así se pone un hipervínculo en la página N1 que lleve a la página N2 , y

un hipervínculo en la página N2 que llev4 a la página N1 . Este truco es

algo difícil de utilizar en la práctica. Supongamos que se tiene una fórmula

importante de la página N1 . Se desea poner enlaces en páginas N2 y N3 y


N4 , cada uno de ellos que lleve a la página N1 . Pero una vez en la página

N1 , podría ser confuso en cuanto a cuál de las páginas N2 o N3 o N4 se

supone que se debe volver.

19 Teoremas y relacionados

En beamer AT X están predenidos:


los siguientes entornos L E

theorem

corollary

definition

example

proof

Los temas beamer controlan el aspecto de estos entornos. Por ejemplo,

el siguiente código genera la dispositiva que se muestra en la gura 2.21.

\documentclass{beamer}
154
\usetheme{Singapore}

\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\deftranslation[to=spanish]{Theorem}{Teorema}
\deftranslation[to=spanish]{Definition}{Definición}

\begin{document}

\begin{frame}{Teoremas y relacionados}

\begin{definition}
Un triángulo rectángulo que tiene un ángulo recto es
llamado \emph{triángulo rectángulo}.
\end{definition}

\begin{theorem}
En un triángulo rectángulo, el cuadrado de la hipotenusa
es igual a la suma de los cuadrados de los dos lados.
\end{theorem}

\begin{proof}
Dejamos la demostración como ejercicio para nuestro
astuto lector. También sugerimos que el lector generalice
la prueba a las geometrías no euclidianas.
\end{proof}

\end{frame}
\end{document}

Si cambiamos el tema a \usetheme{Warsaw}, la dispositiva toma el

aspecto mostrado en la gura 2.22.

155
Figura 2.21 Aspecto de los teoremas y relacionados según el
tema Singapore.

Figura 2.22 Aspecto de los teoremas y relacionados según el


tema Warsaw.

156
Estos entornos están denidos en el paquete amsmath que se carga au-

tomáticamente en beamer. Por lo tanto, es posible denir nuestros propios


entornos, según la necesidad que se presente. Por ejemplo, si ponemos

\newtheorem{proposition}{Proposición}
en el preámbulo, entonces será posible usar, en el documento, el entorno

\begin{proposition}
...
\end{proposition}

Observación: Puede resultar más práctico denir todos los entornos,


de teoremas y relacionados, que vamos a utilizar mediante el comando:

\newtheorem{...}{...} (no olvide que el primer campo no debe incluir

tildes, ni diéresis, ni virgulillas, etc.) Por ejemplo, el siguiente código pro-

duce la diapositiva de la gura 2.23.

\documentclass{beamer}
\usetheme{Warsaw}

\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\newtheorem{teorema}{Teorema}
\newtheorem{definicion}{Definición}
\newtheorem{lema}{Lema}
\newtheorem{proposicion}{Proposición}

\begin{document}

\begin{frame}{Teoremas y relacionados}

\begin{definicion}
Un triángulo rectángulo que tiene un ángulo recto es
llamado \emph{triángulo rectángulo}.
\end{definicion}

157
Figura 2.23 Personalización de entornos matemáticos.

\begin{proposicion}
En un triángulo rectángulo, el cuadrado de la hipotenusa
es igual a la suma de los cuadrados de los dos lados.
\end{proposicion}

\begin{proof}
Dejamos la demostración como ejercicio para nuestro
astuto lector. También sugerimos que el lector generalice
la prueba a las geometrías no euclidianas.
\end{proof}

\end{frame}
\end{document}

20 División de una diapositiva en columnas

El entorno columns de beamer proporciona una manera fácil de dividir una


diapositiva verticalmente en columnas. Esto es particularmente útil en el

posicionamiento de las guras en una diapositiva o la creación de varias

columnas de listas. El código siguiente genera, a manera de ejemplo, la

dispositiva mostrada en la gura 2.24.

\documentclass{beamer}
158
\usetheme{Warsaw}

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

\begin{document}

\begin{frame}{División de una diapositiva en columnas}

La línea que está leyendo esta escrita en una sola


columna.
Ahora vamos a dividir la diapositiva en dos columnas.
\bigskip

\begin{columns}
\begin{column}{0.5\textwidth}
He aquí la primera columna. Anotaremos una lista
en esta.
\begin{itemize}
\item Este es un item
\item Este es otro item
\item Otro item más
\end{itemize}
\end{column}

\begin{column}{0.3\textwidth}
He aquí la segunda columna. Pondremos una figura
en esta.
\centerline{\includegraphics[width=0.9\textwidth]{math}}
\end{column}
\end{columns}
\bigskip

159
Figura 2.24 División de una diapositiva en columnas.

La línea que está leyendo esta escrita en una sola


columna.

\end{frame}

\end{document}

Observaciones:

Para dividir una diapositiva en tres o más columnas, agregue la canti-

dad adecuada de \begin{column}...\end{column}. Sólo asegúrese

de que la suma de las respectivas anchuras no sobrepase la anchura

de la diapositiva, que es \textwidth.

Dentro de cada columna, la variable \textwidth se redene para

referirse al ancho de esa columna. Por ejemplo, en el código previo, la

anchura de la imagen se ajusta en 0.9\textwidth que signica 0.9


veces la anchura de la columna que contiene la imagen.

Resulta más fácil dar anchos de columnas en términos de fraccio-

nes de \textwidth. Si lo desea, sin embargo, puede especicar an-

churas absolutas, como por ejemplo: \begin{column}{30mm}. Para


esto, debe saber que el tamaño total de una diapositiva beamer es

128mm × 96mm.
160
20.1 Alineación vertical

Observe que en la diapositiva de ejemplo anterior, los puntos medios ver-

ticales de las dos columnas se alinean horizontalmente. Diremos que las

columnas son centro-alineadas, para abreviar.

La opción [t] del entorno columns, como en \begin{columns}[t],


hace a las columnas super-alineadas.

Otras opciones son [b] para la infra-alineación y [c] para la centro-

alineación (que es la predeterminada).

En el siguiente ejemplo las columnas están super-alineadas (ver Fig.

??).
\documentclass{beamer}
\usetheme{Warsaw}

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

\begin{document}

\begin{frame}{División de una diapositiva en columnas}

La línea que está leyendo esta escrita en una sola


columna.
Ahora vamos a dividir la diapositiva en dos columnas.
\bigskip

\begin{columns}[t]
\begin{column}{0.5\textwidth}
He aquí la primera columna. Anotaremos una lista
en esta.
\begin{itemize}
\item Este es un item
\item Este es otro item
161
Figura 2.25 Diapositiva con columnas super-alineadas.

\item Otro item más


\end{itemize}
\end{column}

\begin{column}{0.3\textwidth}
He aquí la segunda columna. Pondremos una figura
en esta.
\centerline{\includegraphics[width=0.9\textwidth]{math}}
\end{column}
\end{columns}
\bigskip

La línea que está leyendo esta escrita en una sola


columna.

\end{frame}

\end{document}

20.2 Alineación vertical con imágenes

A veces puede que la opción [t] para la super-alineación produzca re-

sultados inesperados. El siguiente ejemplo muestra un caso como tal. La

162
única diferencia entre este ejemplo y el anterior es que se ha intercambiado

la imagen y el texto en la segunda columna (ver Fig. 2.26).

\documentclass{beamer}
\usetheme{Warsaw}

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

\begin{document}

\begin{frame}{División de una diapositiva en columnas}

La línea que está leyendo esta escrita en una sola


columna.
Ahora vamos a dividir la diapositiva en dos columnas.
\bigskip

\begin{columns}[t]
\begin{column}{0.5\textwidth}
He aquí la primera columna. Anotaremos una lista
en esta.
\begin{itemize}
\item Este es un item
\item Este es otro item
\item Otro item más
\end{itemize}
\end{column}

\begin{column}{0.3\textwidth}
\centerline{\includegraphics[width=0.9\textwidth]{math}}
He aquí la segunda columna. Pondremos una figura
en esta.
\end{column}
163
Figura 2.26 Diapositiva con resultados inesperados. Como puede
verse, las columnas no están super-alineadas en absoluto!

\end{columns}
\bigskip

La línea que está leyendo esta escrita en una sola


columna.

\end{frame}

\end{document}

Lo que está sucediendo es que la parte inferior de la imagen se toma

como punto de referencia de la imagen. Por lo tanto la parte inferior de

la imagen está alineada con la parte superior de la primera columna. Esto

no es lo que queremos!

Queremos la parte superior de la imagen se tome como punto de refe-

rencia, de modo que la parte superior de la imagen está alineada con la

parte superior de la primera columna. Para lograr esto, beamer proporcio-


na la opción de alineación [T]. El ejemplo siguiente muestra el resultado

(ver Fig. 2.27).

164
Figura 2.27 Diapositiva super-alineada.

21 Alineación vertical en las diapositivas

21.1 Alineación vertical en cada diapositiva

El contenido de las diapositivas beamer se centra verticalmente dentro de


las diapositivas. Esto es particularmente notable si hay muy poco material

en la diapositiva.

Utilice las opciones t, c o b con \begin{frame} para que el contenido

de la diapositiva aparezca alineado en la parte superior, central o inferior

de la diapositiva, respectivamente. La opción por defecto es c.

Las guras 2.28, 2.29 y 2.30 muestran esto.

21.2 Alineación vertical para todo el documento

Es posible congurar la alineación vertical de todo el documento, dando

una de las opciones t o b al \documentclass. Por ejemplo:

\documentclass[t]{beamer}

hará que el contenido de todas las diapositivas sean super-alineados. Se

puede anular este efecto para diapositivas individuales utilizando las op-

ciones c o b con \begin{frame}.


165
Código de la diapositiva
\documentclass{beamer}
\usetheme{Singapore}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\begin{document}
\begin{frame}[t]{Alineación superior}
Este es el contenido de la diapositiva.
\end{frame}
\end{document}

Figura 2.28 Diapositiva con alineación superior.

Código de la diapositiva
\documentclass{beamer}
\usetheme{Singapore}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\begin{document}
\begin{frame}[c]{Alineación central}
Este es el contenido de la diapositiva.
\end{frame}
\end{document}

Figura 2.29 Diapositiva con alineación central.

166
Código de la diapositiva
\documentclass{beamer}
\usetheme{Singapore}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\begin{document}
\begin{frame}[b]{Alineación inferior}
Este es el contenido de la diapositiva.
\end{frame}
\end{document}

Figura 2.30 Diapositiva con alineación inferior.

22 El tamaño de fuente por defecto

El tamaño de fuente por defecto de beamer es de 11 puntos. Es posible

ajustar el tamaño de fuente predeterminado a 8, 9, 10, 11, 12, 14, 17 o

20 en la línea de \documentclass. Por ejemplo, para establecer la fuente

predeterminada a 14 puntos, hacer:

\documentclass[14pt]{beamer}

23 El color de texto predeterminado

El texto normal de beamer es negro sobre fondo blanco. El siguiente co-

mando en el preámbulo cambia el color de todo el texto normal a púrpura:

\setbeamercolor{normal text}{fg=purple} (ver Fig. 2.31)

Observación: El texto normal es el texto en el cuerpo principal de una


diapositiva. Los encabezados y el pies de página no son texto normal. Los

colores de estos elementos son controlados por structure. Por ejemplo,

167
Código de la diapositiva
\documentclass{beamer}
\usetheme{Singapore}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\setbeamercolor{normal text}{fg=purple}
\begin{document}
\begin{frame}{Texto normal en color púrpura}
Este es el contenido de la diapositiva.
\end{frame}
\end{document}

Figura 2.31 Diapositiva con texto normal en color púrpura.

el comando siguiente cambia los títulos de las diapositivas (y otros) a

púrpura:

\setbeamercolor{structure}{fg=purple} (ver Fig. 2.32)

24 Fuentes y estilos de letras

La información almacenada en structure, relacionada con fuentes, deter-


mina el tipo de letra para representar los elementos estructurales de una

presentación como encabezados, pies de página y algunas entradas de la

portada.

La fuente por defecto para la mayoría de los temas es como se muestra

en la gura 2.33.

Vamos a cambiar el tipo de letra a romana cursiva. Tenga en cuenta los

cambios en la portada, los encabezados y pies de página (ver Fig. 2.34).

Otros ejemplos se aprecian en las guras 2.35 y 2.36.

168
Código de la diapositiva
\documentclass{beamer}
\usetheme{Singapore}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\setbeamercolor{structure}{fg=purple}
\begin{document}
\begin{frame}{Título en color púrpura}
Este es el contenido de la diapositiva.
\end{frame}
\end{document}

Figura 2.32 Diapositiva con título en color púrpura.

Código de una parte del preámbulo


\documentclass[14pt]{beamer}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.33 Diapositiva en formato por defecto.

169
Código de una parte del preámbulo
\documentclass[14pt]{beamer}
\setbeamerfont{structure}{family=\rmfamily,shape=\itshape}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.34 Diapositiva en formato romana cursiva.

Código de una parte del preámbulo


\documentclass[14pt]{beamer}
\setbeamerfont{structure}{shape=\itshape}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.35 Diapositiva en formato cursiva.

170
Código de una parte del preámbulo
\documentclass[14pt]{beamer}
\setbeamerfont{structure}
{family=\rmfamily,series=\bfseries,shape=\itshape}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.36 Diapositiva en formato romana negrita y cursiva.

24.1 Fuentes de temas

beamer ofrece un conjunto predenido de opciones de fuente que afectan

no sólo a los elementos estructurales, sino también el texto normal y las

matemáticas. Las guras 2.37, 2.38, 2.39 y 2.40 muestran algunos ejemplos.

25 Contracción de diapositivas

Para colocar un poco de material extra en una diapositiva beamer, es

posible especicar un factor de contracción ( shrink) de esa diapositiva,

como en la gura 2.41.

26 Cambio de anchos de margen

El tamaño de una diapositiva beamer es de 128mm × 96mm. Estas di-

mensiones son jas y no se deben cambiar.

Es permisible, sin embargo, cambiar las anchuras de los márgenes iz-

quierdo y derecho. Estos están establecidos a 1cm por defecto.

Con los siguientes comandos (ubicados en el preámbulo), se cambia el

ancho de los márgenes izquierdo y derecho a 6mm y 2mm, respectivamen-


te:

171
Código de una parte del preámbulo
\documentclass[14pt]{beamer}
\usefonttheme{serif}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.37 Diapositiva con fuente de tema serif.

Código de una parte del preámbulo


\documentclass[14pt]{beamer}
\usefonttheme[stillsansseriftext]{serif}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.38 Diapositiva con fuente de tema serif, excepto el tex-


to normal.

172
Código de una parte del preámbulo
\documentclass[14pt]{beamer}
\usefonttheme[stillsansseriftext,stillsansserifmath]{serif}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.39 Diapositiva con fuente de tema serif, excepto el tex-


to normal y la variables del modo matemático.

Código de una parte del preámbulo


\documentclass[14pt]{beamer}
\usefonttheme{structuresmallcapsserif}
\usetheme{Boadilla}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}

Figura 2.40 Diapositiva con fuente de tema structuresmallcaps-


serif.

173
Código de la diapositiva
\begin{frame}[shrink=5]{Una diapositiva sencilla}
A continuación algunas ecuaciones:
\[\sen^2x+\cos^2x=1\]
\[a^2x+b^2y=c^2z\]
\[\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}\]
\[\int_0^1x^2\,dx=\frac{1}{3}\]
\end{frame}

Figura 2.41 Diapositiva comprimida.

\setbeamersize{text margin left=6mm}


\setbeamersize{text margin right=2mm}

también es posible combinar ambos comandos en uno solo:

\setbeamersize{text margin left=6mm, text margin right=2mm}

27 Texto de color, fondos y cajas

El texto en color en beamer se produce utilizando el comando estándar de


AT X, como en:
L E

\textcolor{blue}{Este texto está en azul}

Observación: El comando \structure{Este es un texto en color}


puede ser usado para dibujar el texto especicado en el color almacenado

en structure (ver Sec. 10).

El color del fondo de texto se establece con el comando \colorbox.

\colorbox{yellow}{Este texto tiene fondo amarillo}


174
Es posible combinar varios colores y elementos de fuente para lograr

resultados interesantes. Por ejemplo:

\colorbox{yellow}{
\textcolor{red}{
\textbf{
Texto en negrita, color rojo y fondo amarillo
} } }

Para incluir texto en una caja:

\fcolorbox{red}{yellow}{Una caja amarilla con borde rojo}

El grosor del borde es controlado por la variable \fboxrule. Vamos a

establecer el grosor del borde en 4 puntos:

\setlength{\fboxrule}{4pt}
\fcolorbox{red}{white}{Una caja blanca con borde rojo
de 4pt de grosor}

La separación entre el borde y el objeto encerrado es controlado por la

variable \fboxsep. Vamos a establecer la separación a cero:

\setlength{\fboxrule}{4pt}
\setlength{\fboxsep}{0pt}
\fcolorbox{red}{white}{Una caja blanca con borde rojo
y separación de 0pt}

175
28 Bibliografía

Se puede incluir bibliografía usando el comando estándar

\thebibliography

No obstante, beamer dispone de plantillas para mostrar artículos y libros

de forma más agradable. Tales plantillas se invocan con

\beamertemplatearticlebibitems

y con

\beamertemplatebookbibitems

respectivamente. A modo de ejemplo se presenta el siguiente código el cual

genera una diapositiva como la que se muestra en la gura 2.42.

\begin{frame}{Bibliografía}

\begin{thebibliography}{CM}

\beamertemplatearticlebibitems

\bibitem{Bra}
BRAVO, Juan E. y otros. ``El Método de Newton-Raphson''.
Revista Scientia et Technica Num. 27 (2005).

\beamertemplatebookbibitems

\bibitem{Bur}
BURDEN, R. y FAIRES, J. Douglas. ``Análisis numérico''.
México; Thomson (2002).

\bibitem{Chur}
CHURCHILL, R. y BROWN, J. ``Análisis numérico''.
Editorial McGraw-Hill; USA (1998).
176
\end{thebibliography}

\end{frame}

Figura 2.42 Diapositiva de la bibliografía.

177
3 Programación con LATEX

El compilador TEX contiene aproximadamente 300 secuencias de control

(comandos) llamadas primitivas. Éstas son operaciones de bajo nivel que

no pueden ser descompuestas en acciones más simples. El resto de lo que

propiamente se llama TEX unas 600 instrucciones, son macros, es de-

cir, comandos denidos a partir de las 300 primitivas, haciendo uso de las

capacidades de compilador (es decir, lenguaje de programación) de TEX.

AT X es otro conjunto de macros cons-


Asimismo, el procesador de textos L E

truidas a partir de comandos TEX. En éste capítulo se introducirán las he-

rramientas básicas de programación disponibles en TEX, útiles para denir

nuevos comandos o entornos, modicar parámetros, automatizar tareas,

en denitiva personalizar nuestro documento.

1 Creación de comandos y entornos

1.1 Comandos

En ésta sección describiremos cómo utilizar el comando \newcommand para


AT X que puedan ayudarnos a simplicar el rea-
denir nuevos comandos L E

lizar tareas repetitivas. Para la denición de un nuevo comando se dispone

de tres posibilidades

\newcommand{\NombreComando}[NumArg][ArgDefecto]{Definicion}
\renewcommand{\NombreComando}[NumArg][ArgDefecto]{Definicion}
\providecommand{\NombreComando}[NumArg][ArgDefecto]{Definicion}
178
donde \NombreComando es el nombre que queremos asignar al nuevo co-
mando, NumArg indica el número de argumentos que va a tener (compren-

dido entre 1 y 9), ArgDefecto es el valor por defecto de un argumento

optativo (el primero de ellos), y Definicion contiene la denición del

comando, donde los distintos argumentos se denotan como #1, #2, etc . . .

Entre estas tres versiones existen diferencias importantes. \newcommand


se utiliza para denir nuevos comandos, por lo que debemos estar seguros

de que el comando a denir no existe. \renewcommand se utiliza para rede-


nir comandos ya existentes, reescribiendo y borrado la denición anterior

del comando. Finalmente, \providecommand dene el nuevo comando só-


lo en el caso de que el comando no exista; en caso contrario la nueva

denición carece de efecto.

Para cada una de estas tres posibilidades existen versiones con y sin

asterisco; las versiones con asterisco ( \newcommand*{\NombreComando}


[NumArg]{ArgDef}{Def}, etc . . . ) no permiten que los argumentos pue-

dan extenderse a más de un párrafo, mientras que las versiones sin aste-

risco ( \newcommand{\NombreComando}[NumArg]{ArgDef}{Def}, etc . . . )


permiten que los argumentos se extiendan a más de un párrafo.

1.2 Ejemplos

Es preferible que ubicar las deniciones de los nuevos comandos en el

preámbulo.

Supongamos que la expresión (x1 , x2 , . . . , xn ) aparece frecuentemente


en nuestro documento. Podemos entonces denir

\newcommand{\vect}{(x_1,x_2,\dots,x_n)}
con lo cual, cada vez que escribamos $\vect$ (el nombre del nuevo

comando) se imprimirá (x1 , x2 , . . . , xn ).

Ahora compliquemos un poco el ejemplo con la introducción de argu-

mentos variables. Si por ejemplo escribimos

\newcommand{\vect}[1]{(#1_1,#1_2,\dots,#1_n)}
(añadiendo un argumento, que se sustituye en la fórmula con  #1),
179
escribiendo $\vect{x}$ obtendríamos (x1 , x2 , . . . , xn ), mientras que

con $\vect{a}$ se tendría (a1 , a2 , . . . , an ), etc . . .

Añadiendo más argumentos, podemos obtener construcciones más com-

plejas, por ejemplo, deniendo

\newcommand{\vect}[2]{(#1_1,#1_2,\dots,#1_#2)}
$\vect{x}{n}$ daría como resultado (x1 , x2 , . . . , xn ), mientras que

con $\vect{a}{p}$ se obtendría (a1 , a2 , . . . , ap ).

Practiquemos ahora la denición de comandos con argumentos op-

tativos, que toman un determinado valor por defecto. Por ejemplo,

construyamos

\newcommand{\nuevovector}[2][x]{(#1_1,#1_2,\dots,#1_#2)}
donde la  x entre corchetes es el valor por defecto del argumento op-

cional (siempre el primero). Así, escribiendo $\nuevovector{n}$ ó

$\nuevovector{p}$ obtendríamos (x1 , x2 , . . . , xn ) y (x1 , x2 , . . . , xp )


respectivamente, mientras que añadiendo un argumento optativo cam-

biaríamos el valor por defecto de  , x $\nuevovector[a]{n}$ daría

(a1 , a2 , . . . , an ).

2 Entornos

También es posible denir nuevos entornos, o redenir entornos ya exis-

tentes; para ello se dispone de los siguientes comandos

\newenvironment{NombreEntorno}[NumArg][ArgDef]{DefEntrada}
{DefSalida}
\renewenvironment{NombreEntorno}[NumArg][ArgDef]{DefEntrada}
{DefSalida}

que funcionan de un modo similar a los comandos del tipo \newcommand,


en cuanto a que admiten argumentos (hasta 9), opcionalmente con el

primero de ellos optativo. La diferencia reside en que en el argumento

DefEntrada se indican las órdenes que se deben ejecutar antes de entrar

en el entorno, y en el argumento DefSalida la que se deben ejecutar al

180
salir del entorno. Una vez denido el nuevo entorno, se debe invocar de la

siguiente forma

\begin{NuevoEntorno}{Arg1}...{ArgN}
Texto y comandos
\end{NuevoEntorno}

Al igual que en el caso de los comandos, existen versiones sin y con

asterisco, con el mismo signicado, es decir, que respectivamente admiten

o no argumentos de más de un párrafo.

Por ejemplo, construyamos un entorno que cree una minipágina de an-

chura variable por defecto media página), centrada, y con el texto en

negrita

\newenvironment{mientorno}[1][0.5]{\begin{center}%
\begin{minipage}{#1\textwidth}\bfseries}{\end{minipage}%
\end{center}}

y tras denir éste nuevo entorno, tecleando

\begin{mientorno}
Ejemplo de texto con una anchura estándar de media
página, centrado, y en tipo de letra negrita.
\end{mientorno}

obtenemos

Ejemplo de texto con una an-


chura estándar de media pági-
na, centrado, y en tipo de letra
negrita.
o, si queremos emplear el argumento optativo y reducir la anchura del

texto a 0.3 veces la anchura de texto ( \textwidth)

\begin{mientorno}[0.3]
Ejemplo de texto con una anchura de un tercio de página,
centrado, y en tipo de letra negrita
\end{mientorno}
181
Ejemplo de texto
con una anchura de
un tercio de pági-
na, centrado, y en
tipo de letra negri-
ta.
Es importante tener en cuenta que los argumentos de un entorno sólo

pueden utilizarse en la denición de entrada ( DefEntrada). Si los necesi-

tamos en la denición de salida, podemos utilizar el truco de guardarlos

convenientemente, empleando un comando \newcommand para ello. En el

siguiente ejemplo, creamos un entorno cita para escribir citas, dando el

nombre del autor como argumento

\newenvironment{cita}[1]{\newcommand{\autor}{#1}%
\begin{quote}\itshape``}{''\end{quote}\centerline{\autor}}

Tras lo cual, por ejemplo

\begin{cita}{Andres Fernández}
Nuestras vidas son los ríos que van a parar al mar,
que es el morir
\end{cita}

produce

 Nuestras vidas son los ríos que van a parar al mar, que es el

morir 

Andres Fernández

3 Compilación por partes

Imaginemos que estamos escribiendo un documento largo (un libro, por

ejemplo). Es conveniente, a la hora de depurar errores, escribir y compilar

AT X proporciona dos posibilidades


cada parte por separado. Para ello L E

182
El comando \input{Fichero.tex} produce que el compilador, al en-
contrar esta instrucción, lee el chero indicado en el argumento y

continúa compilando dicho chero. En el argumento del comando po-

demos dar, si el chero no se encuentra en el directorio actual, el

camino hasta él. Debe tenerse cuidado de que instrucciones clave co-

mo \documentclass o \begin{document} no se dupliquen. Entonces,


para escribir un libro, por ejemplo, podemos tener un documento con

la siguiente estructura

\documentclass[opciones]{book}
\usepackage{paquete1}
.....
\begin{document}
%\input{capitulo1.tex}
%\input{capitulo2.tex}
%\input{capitulo3.tex}
......
\end{document}

y, al hacer la depuración de errores, descomentar individualmente cada

una de las líneas \input{fichero.tex}. También es posible utilizar

este comando para otros usos, por ejemplo, incluir listas de instruc-

ciones \newcommand y personalizaciones diversas que podamos querer


hacer comunes a varios documentos.

Una alternativa más cómoda es utilizar, en vez de \input, el co-


mando \include{Fichero} (es esencial omitir la extensión .tex en

éste caso). Entonces, en el preámbulo se puede colocar el comando

\includeonly{Fichero1,Fichero2,...}, que hace que sólo se in-

cluyan en la compilación los cheros que aparecen en el argumen-

to. Es importante mencionar que al comenzar y terminar, la orden

\include induce un salto de página (más exactamente, un comando

\clearpage, que además expulsa elementos otantes pendientes),

por lo que esta alternativa es conveniente utilizarla sólo para incluir

capítulos de un libro o tesis.

183
4 Conceptos básicos sobre contadores y longitudes

4.1 Contadores

AT X utiliza un amplio número de conta-


En su funcionamiento habitual, L E

dores con el n de enumerar distintos elementos de un documento: pá-

ginas, secciones, tablas, guras, etc... Cada contador tiene un nombre

que permite identicarlo; así, page es el contador que identica páginas,

chapter capítulos, etc... En lo sucesivo, denotaremos ese nombre como


NombreContador. Cada contador lleva asociados una serie de elementos
de diferente signicado: nombre, valor (siempre un número entero) y for-

mato, éste último pudiendo tomar variadas formas: (I, II, III..., a, b, c...)

Se dispone de los siguientes formatos de contador

\arabic{NombreContador} 1, 2, 3, 4, . . .

\alph{NombreContador} a, b, c, d, . . . (nota 1)

\Alph{NombreContador} A, B, C, D, . . . (nota 1)

\roman{NombreContador} I, II, III, IV . . . (nota 2)

\Roman{NombreContador} I, II, III, IV, . . .

\fnsymbol{NombreContador} *, **, ***, ****, . . . (nota 3)

Nota 1: El valor del contador no puede superar 27 (número de letras en


el abecedario.

Nota 2: El resultado mostrado es el que se obtiene con babel, opción

spanish. Sin ello, se obtendría i, ii, iii, ... No obstante, aunque se

use el paquete babel con la opción spanish es posible obtener las

minúsculas en la numeración romana insertando el siguiente código

en el preámbulo

\makeatletter
\def\@roman#1{\romannumeral #1}
\makeatother
184
Nota 3: Igualmente, el resultado mostrado es el obtenido con babel y

spanish; en caso contrario, se utilizan las marcas inglesas: *, „, …...


En ambos casos, el valor no puede ser superior a 6.

Asociado a cada contador existe un comando, llamado representación

del contador, que permite imprimir el valor del contadorNombreContador


en alguno de los formatos descritos; el comando es \theNombreContador.

AT X dene un nuevo contador, le asigna inicialmente la re-


Cuando L E

presentación correspondiente al formato\arabic; si queremos cambiarla,


podemos redenirla mediante el comando \renewcommand*; veamos unos

ejemplos de lo que se puede hacer

Este ejemplo muestra cómo obtener


el número de la página en curso; ésta
página es la número \thepage, en la
representación original.\\
\renewcommand*{\thepage}{\roman{page}}
Ahora esta cambiada a números romanos; ésta
página es la número \thepage.\\
\renewcommand*{\thepage}{[Sec. %
\thesection\ -- Pág. \arabic{page}]}
Luego, algo más elaborado; ésta página
es la número \thepage.\\
\renewcommand*{\thepage}{\arabic{page}}
Finalmente, volvemos al formato original; ésta
página es la número \thepage.

Este ejemplo muestra cómo obtener el número de la página en curso;

ésta página es la número 185, en la representación original.

Ahora esta cambiada a números romanos; ésta página es la número clxxxv.

Luego, algo más elaborado; ésta página es la número [Sec. 4  Pág. 185].

Finalmente, volvemos al formato original; ésta página es la número 185.

Podemos cambiar los valores de un contador con los siguientes comandos

185
\setcounter{NombreContador}{Valor} Asigna al contador
NombreContador el valor entero Valor, con independencia del valor

anterior.

\addtocounter{NombreContador}{Valor} Incrementa
NombreContador con la cantidad Valor, que puede ser positiva o ne-
gativa.

Esta es la sección \thesection. Pero podemos


a\~{n}adirle 2 fácilmente;
\addtocounter{section}{2}
ahora estamos en la sección \thesection.
Mejor lo dejamos como estaba, porque si no las
restantes secciones quedarían numeradas
incorrectamente (esto es, el efecto de estos
cambios de numeración es \emph{global}).
\addtocounter{section}{-2}

Esta es la sección 4. Pero podemos añadirle 2 fácilmente; ahora estamos

en la sección 6. Mejor lo dejamos como estaba, porque si no las restantes

secciones quedarían numeradas incorrectamente (esto es, el efecto de estos

cambios de numeración es global ).

Podemos recuperar el valor numérico de un contador, independiente-

mente de su representación, con el comando

\value{NombreContador}

lo cual es útil para la gestión de contadores, como veremos a continuación.

Se denen nuevos contadores con la instrucción

\newcounter{NuevoContador}[ContadorExistente]

que introduce un contador de nombre NuevoContador, y le asigna cero co-


mo valor inicial. El argumento ContadorExistente es optativo, y sirve pa-

ra subordinar NuevoContador al contador ya existente ContadorExistente,

186
de la misma forma que, por ejemplo, el contadorsubsection está subordi-
nado al contador section: incrementar en una unidad el contador section

implica que el contador subsection se reinicia a cero automáticamente.

Veamos un ejemplo de cómo introducir un nuevo contador, con el n

de enlazar varias listas enumerate manteniendo la numeración ( enumi es

AT X para los ítems de primer nivel en entornos


el contador estándar L E

enumerate)

Las primeras lecciones son las siguientes:


\newcounter{conserva}
\begin{enumerate}
\item Números reales
\item Números complejos
\setcounter{conserva}{\value{enumi}}
\end{enumerate}
Mas adelante, se estudiarán temas más complicados:
\begin{enumerate}
\setcounter{enumi}{\value{conserva}}
\item Continuidad
\item Derivación
\end{enumerate}

Las primeras lecciones son las siguientes:

1) Números reales

2) Números complejos

Mas adelante, se estudiarán temas más complicados:

3) Continuidad

4) Derivación

Debe mencionarse que al crear un nuevo contador se crea automá-

ticamente el comando \theNuevoContador, con la denición \arabic{


NuevoContador} por defecto.

187
Cuando se modica un contador con los comandos \setcounter y

\addtocounter, los contadores subordinados no se ponen a cero; para

obtener ése efecto, se dispone de los comandos

\stepcounter{NombreContador} Incrementa NombreContador en una


unidad, y reinicia todos los contadores subordinados a éste.

\refstepcounter{NombreContador} Lo mismo que el anterior, pero


declarando también como valor del comando \ref el texto generado

por \theNuevoContador cuando se utilizan referencias cruzadas con

los comandos \label y \ref.

Veamos un pequeño ejemplo que ilustra como utilizar estos comandos;

denimos

\newcounter{prg}[section]\newcounter{linea}[prg]
\newcommand*{\lin}{%
\addtocounter{linea}{1}\thelinea\quad}
\renewcommand*{\theprg}{\arabic{section}.\arabic{prg}}
\newenvironment*{programa}{%
\refstepcounter{prg}
\begin{center}Programa~\theprg\end{center}
\obeylines\obeyspaces}{\par}

Y, luego utilizamos nuestro nuevo entorno, programa, así

\begin{programa}
Entrada: $N$, $x_1,x_2,\ldots,x_N$.
Salida: $SUMA=\sum_{i=1}^Nx_i$.
\lin $SUMA=0$.
\lin Para $i=1,2,\ldots,N$: $SUMA=SUMA+x_i$.
\lin SALIDA($SUMA$); PARAR.
\end{programa}

con lo que se obtiene

Programa 4.1

188
Entrada: N , x1 , x2 , . . . , xN .
SU M A = N
P
Salida: i=1 xi .

1 SU M A = 0.
2 Para i = 1, 2, . . . , N : SU M A = SU M A + xi .
3 SALIDA(SU M A); PARAR.

4.2 Longitudes

AT X es también capaz de crear y modi-


Al igual que con los contadores, L E

car variables de tipo Longitud. Las longitudes que habitualmente utiliza

AT X pueden tomar dos tipos de valores


L E

Rígidas: Toman un valor determinado; por ejemplo \quad = 11.747 pt,


1
\thinspace = 1.958 pt, \hoffset = -28.45274 pt .

Elásticas: Toman AT X puede modicar dentro de unos


un valor que L E

límites, a n de optimizar la composición del documento. Por ejemplo,

\bigskip, \medskip y \smallskip.

El comando \bigskip se dene como

\vspace{12pt plus 4pt minus 4pt}

AT X debe introducir un espacio vertical de 12


lo cual quiere decir que L E

pt, aunque tiene la libertad de incrementarlo o reducirlo en 4 pt, según

convenga a n de distribuir el espacio de forma homogénea. Alguna de

las holguras plus o minus pueden estar ausentes en la denición, pero si

ambas aparecen deben estar en ése orden.

Los comandos \bigskip, \medskip y \smallskip, respectivamente,

tienen asociadas longitudes elásticas con valores almacenados en \bigskip-


amount, \medskipamount y \smallskipamount, por lo que tales coman-

dos se denirían de hecho como


1 Hay que tener cuidado en no confundir el concepto de longitud y del valor que toma
una longitud; \hoffset es una longitud, mientras que \quad y \thinspace son comandos
que dejan en blanco un espacio horizontal de valor rígido

189
\bigskip −→ \vspace{\bigskipamount}

\medskip −→ \vspace{\medskipamount}

\smallskip −→ \vspace{\smallskipamount}

y donde cada una de éstas longitudes elásticas toma valores

\bigskipamount :: 12.0pt plus 4.0pt minus 4.0pt

\medskipamount :: 6.0pt plus 2.0pt minus 2.0pt

\smallskipamount :: 3.0pt plus 1.0pt minus 1.0pt

Puede obtenerse el valor de cualquier longitud con el comando

\the\NombreLongitud

donde NombreLongitud es el nombre de la longitud; éste comando siem-

pre expresa las longitudes en unidades pt, con el punto como separador

decimal.

Al igual que ocurría con los contadores, los valores de una longitud

pueden modicarse. Existen dos comandos para ello

\setlength{\NombreLongitud}{Valor} Asigna a la longitud


\NombreLongitud un valor igual al argumento Valor, que debe ser

una longitud (ésto es, expresada en unidades cm, pt, etc...). Puede ser

un valor tanto rígido como elástico (por ejemplo, 5mm plus 1mm mi-

nus 2mm). También es posible que Valor sea una variable de longitud
( \textwidth) con quizás un factor multiplicativo (0.5\textwidth,

por ejemplo).

Una forma alternativa de asignar a \NombreLongitud un valor es uti-


lizar la sintaxis

\NombreLongitud=Valor o bien \NombreLongitud Valor.


\addtolength{\NombreLongitud}{Valor} Suma a la longitud
\NombreLongitud la cantidad Valor, que puede ser positiva o nega-
tiva.

190
Al contrario que lo que ocurría con los contadores, cuyas asignaciones

tienen carácter global (es decir, trascienden el grupo dentro del cual han

sido declaradas, y tienen efecto en todo el resto del documento), las asig-

naciones de longitud tienen por defecto carácter local ; si se realizan dentro

de un grupo, el valor anterior a la asignación se recupera a la salida del

grupo. En el caso de que deseemos un efecto global, puede ser aconsejable

realizar tales asignaciones en el preámbulo del documento.

Se pueden denir nuevas longitudes con el comando

\newlength{\NuevaLongitud}

que crea una nueva longitud llamada \NuevaLongitud; es importante que


\NuevaLongitud AT X ya exis-
no sea ni un comando ni una longitud L E

tentes, en cuyo caso obtendríamos un mensaje de error. Por defecto, las

nuevas longitudes son creadas con un valor inicial 0.0 pt.

Para la gestión de valores de longitud son útiles los siguientes comandos

\settowidth{\NombreLongitud}{Objeto}
\settoheight{\NombreLongitud}{Objeto}
\settodepth{\NombreLongitud}{Objeto}

que calculan, respectivamente, la anchura (width), altura (height) y pro-


2
fundidad (depth) de un objeto, asignando el valor resultante a la longitud

\NombreLongitud.

Ejemplos

Imaginemos que queremos medir la longitud asociada al comando \quad.


Para ello podemos denir una nueva longitud

\newlength{\longi}

a continuación, asociamos a \longi la anchura del espacio asociado al

comando \quad

\settowidth{\longi}{\quad}
2 Distancia por debajo de la línea de base.

191
tras lo cual, el comando \the\longi muestra el valor 9.99756pt.

Ahora creamos otra longitud

\newlength{\longitud}

que empleamos para medir la anchura, altura, y profundidad de la palabra

Integral.

\newlength{\longitud}
\noindent La anchura de la palabra {\Large Integral}
es \settowidth{\longitud}{\Large Integral} \the\longitud,
su altura es \settoheight{\longitud}{\Large Integral}
\the\longitud\ y su profundidad es
\settodepth{\longitud}{\Large Integral} \the\longitud.

La anchura de la palabra Integral es 50.93025pt, su altura es 11.0184pt

y su profundidad es 3.11137pt.

Veamos un último ejemplo

\newlength{\longA}
\settowidth{\longA}{xxxxx}
\begin{center}
xxxxx\\
xxxxx\hspace{\longA}xxxxx\\
xxxxx\hspace{\longA}xxxxx\hspace{\longA}xxxxx\\
xxxxx\hspace{\longA}xxxxx\\
xxxxx
\end{center}

xxxxx

xxxxx xxxxx

xxxxx xxxxx xxxxx

xxxxx xxxxx

xxxxx

192
Longitudes elásticas fil

En este apartado describiremos dos unidades de longitud elásticas:

• fil • fill
AT Xutiliza para introducir espacios de longitud variable. Ambas pro-
que L E

porcionan dos diferentes grados de elasticidad innita; fil es una unidad


de longitud elástica innitamente más grande que cualquier longitud rígi-

da, mientras que fill es innitamente más grande que fil (y por tanto,

que cualquier longitud rígida).

Basados en éstas unidades de longitud, existe una variedad de comandos

\fill Es una longitud, de valor 0pt plus 1fill.

\stretch{n} Es una longitud de valor 0pt y holgura un número n de


unidades fill (entero o decimal). Así, \fill equivale a \stretch{1}.

De éste modo, los comandos\hfill y \vfill equivalen a \hspace{\fill}


y \vspace{\fill}, respectivamente. La utilidad del comando \stretch{n}

está en la posibilidad de separar objetos con espacios proporcionales a di-

versas cantidades. Véase el siguiente ejemplo

Colocamos un texto centrado:\\[2mm]


\vrule\hspace{\stretch{1}}Texto
centrado\hspace{\stretch{1}}\vrule\par
Ahora colocamos un texto con el doble de espacio a
un lado que al otro:\par
\noindent\vrule\hspace{\stretch{1}}%
Texto\hspace{\stretch{2}}\vrule\par
Otro ejemplo, con la distancia entre T1 y T2 igual a
tres veces la distancia a los m\'{a}rgenes:\par
\noindent\vrule\hspace{\stretch{1}}
T1\hspace{\stretch{3}}T2 \hspace{\stretch{1}}\vrule

Colocamos un texto centrado:

Texto centrado

193
Ahora colocamos un texto con el doble de espacio a un lado que al otro:

Texto

Otro ejemplo, con la distancia entre T1 y T2 igual a tres veces la dis-

tancia a los márgenes:

T1 T2

(para imprimir la barra vertical de referencia al comienzo y nal de línea

en el ejemplo anterior, hemos utilizado el comando \vrule; podemos poner


una marca en blanco con los comandos \mbox{} o \null).

\hfill y \vfill (ya descritos).

\hfil y \vfil Análogos a los anteriores, pero empleando para la

elasticidad una unidad fil en lugar de fill.

El siguiente ejemplo ilustra la diferencia entre las unidades fil y fill

\noindent A \hfil B \hfil C \\


D \hfill E \hfill F \par

A B C

D E F

¾Porqué cambian las posiciones de B y C en la primera línea? La res-

AT X introduce un espacio
puesta está en que, antes de cortar una línea, L E

de elasticidad variable, a n de evitar que las líneas cortas se estiren hacia

la derecha. Éste espacio se controla a través de la longitud \parfillskip,


que por defecto tiene el valor 0pt plus 1fil. Por tanto, en el primer

ejemplo se equilibran los espacios asociados a tres comandos \hfil. En el


segundo caso, esto no sucede, dado que \hfill corresponde a un grado

de elasticidad innitamente más grande.

\hfilneg y \vfilneg Equivalen, respectivamente, a


\hspace{0pt plus -1fil} y a \vspace{0pt plus -1fil}, y per-
miten cancelar el efecto de los comandos \hfil y \vfil; por ejemplo

\parindent=0pt \parfillskip=0pt
194
\newcommand*{\centrar}[1]{\vrule\hfil #1\hfil\vrule}
\centrar{Centrado}\par
\centrar{Centrado anulado\hfilneg}\par
\centrar{\hfilneg Centrado anulado}

Centrado

Centrado anulado

Centrado anulado

\hss Equivale a \hspace{0pt plus 1fil minus 1fil}, e interviene


en la denición de los comandos \leftline, \rightline y

\centerline.

\vss Análogo vertical, que equivale a


\vspace{0pt plus 1fil minus 1fil}.

Los siguientes comandos (algunos de ellos ya mencionados anterior-

mente) tienen un efecto similar a \hfill, con la diferencia de que en el

espacio intermedio introducen diversos símbolos de extensión variable (en

dirección horizontal)

\hrulefill −→ Raya

A\hrulefill B\hrulefill C

A B C

\dotfill −→ Raya

A\dotfill B\dotfill C

A................................B................................C

downbracefill y \upbracefill −→ Llaves hacia abajo o hacia arri-


ba, respectivamente.

\leftarrowfill y \rightarrowfill −→ Flechas a izquierda y de-

recha, respectivamente.

195
\parindent=0pt \parfillskip=0pt
\mbox{}\hspace{\stretch{1}}A%
\hspace{\stretch{3}}\mbox{}\\[-3pt]
\mbox{}\downbracefill\mbox{}%
\hspace{\stretch{2.3}}\mbox{}\\
B\hspace{\stretch{1}}C%
\hspace{\stretch{1}}D\\[-7pt]
\mbox{}\hspace{\stretch{2.3}}%
\mbox{}\upbracefill\mbox{}\\
\mbox{}\hspace{\stretch{1}}E%
\hspace{\stretch{2}}F%
\hspace{\stretch{1}}\mbox{}\\[-5pt]
\mbox{}\hspace{\stretch{0.5}}%
\rightarrowfill%
\hspace{\stretch{0.5}}\mbox{}\\

z }| {
B C D
| {z }
E F
−−−−−−−−−−−−−−−−−−−−−−−−−−−→

Antes de continuar es preciso reasignar los valores por defecto a: \parfillskip


(para evitar que las líneas cortas, como la última de este párrafo, se estiren

a la derecha), esto es

\parfillskip = 0pt plus 1fil

y también a \parindent (para que se sangre automáticamnete el inicio de


cualquier párrafo), esto es

\parindent=18pt

Finalmente, describiremos los comandos \rlap{Objeto} y \llap{Objeto};


respectivamente, colocan Objeto en una caja de anchura 0pt (por lo que

196
el cursor no se mueve), con el objeto saliendo hacia la derecha o izquierda

de la caja. Por ejemplo

Tachamos la palabra izquierda%


\llap{\rule[2.5pt]{48pt}{0.4pt}}
y seguimos escribiendo.\par
\hfil \rlap{uno}\llap{dos}\vrule \par
\hfil \llap{dos}\rlap{uno}\vrule

Tachamos la palabra izquierda y seguimos escribiendo.

dosuno

dosuno

5 Programación con TEX

5.1 Otro modo de denir comandos

Anteriormente hemos visto cómo denir nuevos comandos mediante la

utilización de los comandos tipo \newcommand AT X. Existe un modo


de L E

alternativo, empleando comandos de más bajo nivel de TEX (de hecho,

AT X). Para ello existe el


éste es el modo estándar de construir macros L E

comando \def, con la siguiente sintaxis

\def\NuevoComando#1...#9{Definicion}

donde \NuevoComando es el nombre del nuevo comando, #1...#9 los argu-


mentos de que depende (hasta 9), y entre llaves su denición. Por ejemplo,

denamos

\def\ecuacion#1#2{\ensuremath{#1_1^2+#1_2^2+\cdots+#1_#2^2=1}}

tras lo cual,\ecuacion{z}{5} produce z12 + z22 + . . . + z52 . Nótese el uso


del comando \ensuremath{Formula}, que tiene como resultado asegurar

que la expresión Formula se ejecuta dentro del modo matemático (por lo

cual, no es necesario abrir y cerrar signos $ antes y después del comando

\ecuacion).
197
El comando \def, a diferencia del \newcommand, permite elegir los de-
limitadores de los argumentos (que con \newcommand siempre deben ser

llaves, o corchetes para los argumentos optativos). Además, es incluso po-

sible prescindir de las llaves al escribir los argumentos del comando; por

ejemplo, en el caso anterior podríamos haber escrito \ecuacion z5 con el


mismo resultado que \ecuacion{z}{5}: TEX lee secuencialmente los argu-
mentos tras el nombre del comando. Para elegir delimitadores especiales

entre los argumentos, simplemente los incluimos entre #1, #2,... #n.
Por ejemplo, redenimos \ecuacion como

\def\ecuacion#1;#2:{\ensuremath{#1_1^2+#1_2^2+\cdots+#1_#2^2=1}}

;
lo cual indica que el primer argumento debe terminar con   y el segundo

:
con  . Ahora debemos escribir \ecuacion z;5: para obtener z12 + z22 +
. . . + z52 .

5.2 Deniciones globales

Todos los comandos creados con\newcommand, \providecommand o \def,


(o redenidos con \renewcommand) son locales ; es decir, si están denidos

dentro de un grupo, su acción estará restringida a ése grupo. En el ejem-

plo siguiente se ve cómo la redenición del comando \prueba dentro del

entorno itemize carece de efecto fuera de éste

\def\prueba{Prueba 1}
\begin{itemize}
\def\prueba{Prueba 2}
\item \prueba
\end{itemize}
\prueba

Prueba 2

Prueba 1

Si queremos denir un comando global (con efecto fuera del grupo

donde es denido) se puede utilizar cualquiera de estas dos alternativas

198
\global\def\NuevoComando#1...#9{Definicion}
\gdef\NuevoComando#1...#9{Definicion}

\global a la denición, o bien


es decir, o bien anteponemos el comando

usamos el comando \gdef. El comando \global también puede usarse pa-

ra hacer globales otro tipo de asignaciones de tipo local, como por ejemplo

las modicaciones de longitudes ( \setlength y \addtolength).

\def\prueba{Prueba 1}
\begin{itemize}
\global\def\prueba{Prueba 2}
\item \prueba
\end{itemize}
\prueba

Prueba 2

Prueba 2

5.3 El comando \let

Imaginemos que denimos un comando en función de otros comandos,

y los comandos en los que se basa cambian. Este cambio se trasladará

entonces al nuevo comando

\noindent\def\uno{1}Uno: \uno \\
\def\dos{\uno\uno} Dos: \dos \\
\def\uno{uno} Uno: \uno \ Dos: \dos

Uno: 1

Dos: 11

Uno: uno Dos: unouno

En ocasiones, puede necesitarse denir un comando que sea indepen-

diente de los cambios que se produzcan en los comandos sobre los que está

denido. Con esta utilidad está construido el comando \let, que saca una
copia de un comando para que funcione siempre de la misma manera, con

199
independencia de redeniciones posteriores de comandos. Se utiliza con la

sintaxis

\let\NuevoComando=\ComandoExistente

que puede usarse también en caso de comandos con argumentos (cuidan-

do de que el comando antiguo y su copia tengan el mismo número de

argumentos). El ejemplo siguiente ilustra el funcionamiento de \let

\noindent\def\uno{1}Uno: \uno \\
\def\dos{\uno\uno} Dos: \dos \\
\let\UNO=\uno \def\DOS{\UNO\UNO}
\def\uno{uno} Uno: \uno \\
Dos: \dos \ \ DOS: \DOS

Uno: 1

Dos: 11

Uno: uno

Dos: unouno DOS: 11

5.4 Manipulación de contadores y longitudes a través de TEX

Veamos ahora cómo se trabaja con contadores y longitudes desde el punto

de vista de TEX. Se pueden realizar operaciones con tres tipos de magni-

tudes

Contadores: Corresponden a registros tipo count, y se denen con el co-


mando \newcount\NuevoContador; el registro puede almacenar nú-

meros enteros entre -214783647 y +214783647.

Longitudes rígidas: Corresponden a registros tipo dimen, y se denen


con el comando \newdimen\NuevaLongitud.
Longitudes elásticas: Existen dos tipos de registro
skip: se denen con \newskip\NuevaLongitud\verb.
muskip: análogo de longitud elástica, que se utiliza sólo en el modo
matemático; se denen con \newmuskip\NuevaLongitud.

200
Existen comandos para realizar las cuatro operaciones aritméticas bási-

cas (suma, resta, multiplicación y división) con todos los registros anterio-

res (ambas sintaxis, con advance o advance by, etc..., son equivalentes)

\advance\NombreRegistro ±Numero
\advance\NombreRegistro by ±Numero donde Numero debe ser una
longitud, si tratamos con registros de tipo longitud, o un número en-

tero, si trabajamos con un contador.

\multiply\NombreRegistro ±Numero
\multiply\NombreRegistro by ±Numero donde Numero debe ser

siempre un entero.

\divide\NombreRegistro ±Numero
\divide\NombreRegistro by ±Numero donde Numero también debe
de ser un entero. En el caso de un contador, se almacenará la parte

entera de la división; en el caso de longitudes, éstas se transforman

primero a unidades sp (la más pequeña de TEX; 1 sp = 65536 pt)


y el resultado se redondea a un múltiplo entero de ésta unidad.

Veamos unos ejemplos

\newskip\LongElastica
\LongElastica=%
10pt plus 1fill minus 2fill%
\par \the\LongElastica
\advance\LongElastica by %
5pt plus 3fill minus 1fill%
\par \the\LongElastica
\multiply\LongElastica by 3%
\par \the\LongElastica
\divide\LongElastica by 2
\par \the\LongElastica

10.0pt plus 1.0ll minus 2.0ll

15.0pt plus 4.0ll minus 3.0ll

201
45.0pt plus 12.0ll minus 9.0ll

22.5pt plus 6.0ll minus 4.5ll

En el caso de longitudes rígidas, existe un forma alternativa de multipli-

carlas por un factor: \Longitud1=Numero\Longitud2 (donde \Longitud1


y \Longitud2 pueden ser la misma). Este procedimiento de multiplicación
tiene la ventaja de que pueden utilizarse factores no enteros (0.5, 1.25,

etc...). En el caso de que \Longitud1 sea elástica, la acción anterior la

transforma automáticamente en una rígida; por ejemplo, tras

\LongElastica=10pt plus 1fill minus 2fill


\LongElastica=2.5\LongElastica

\the\LongElastica da como resultado 22.5pt plus 6.0ll minus 4.5ll.

El siguiente ejemplo ilustra cómo manejar contadores, deniendo un

nuevo comando \hora que calcula la hora, a partir del contador \time,
que almacena el número de minutos después de la medianoche (probar

como ejercicio que el comando funciona correctamente)

\def\hora{\newcount\horas \newcount\minutos
% (Definimos dos nuevos contadores)
\horas=\time \global\divide\horas by 60
% (la parte entera de la division produce la hora)
\minutos=\horas \multiply\minutos by 60
\advance\minutos by -\time
\global\multiply\minutos by -1
% (multiplicamos las horas por 60, restamos \time,
% y cambiamos de signo para obtener los minutos)
\the\horas:\ifnum\minutos<10 0\fi\the\minutos}
% (se imprime horas:minutos, con un cero extra si minutos < 10)

6 Manejo de cajas en TEX

Cuando TEX compone un documento, trabaja manejando diversos objetos

como si fuesen cajas con tres diferentes dimensiones (altura, anchura y

202
profundidad), medidas con respecto a un punto de referencia. Por ejemplo,

las líneas se componen alineando las cajas asociadas a cada carácter, según

la línea base. Entonces, cada línea se convierte a su vez en una caja, que se

alinea (ahora verticalmente), y así sucesivamente hasta que se construye

la página.

Existen tres modos fundamentales de trabajo de TEX, a la hora de

componer cajas

Modo horizontal: TEX agrupa cajas alinéandolas horizontalmente unas


junto a otras, a lo largo de la línea base, creando una nueva caja de an-

chura igual a la suma de anchuras, y de altura y profundidad iguales a

la mayor de las alturas y profundidades de las cajas, respectivamente.

Existen dos sub-modos diferentes dentro del modo horizontal

Ordinario: Es el característico cuando se construyen párrafos; se

alinean caracteres horizontalmente, y después se va cortando pa-

ra formar líneas de la misma anchura. TEX estira o contrae los

espacios para optimizar el resultado nal.

Restringido: En este modo, sólo se alinean las cajas horizontal-

mente, sin posibilidad de dividir la caja resultante en cajas más

pequeñas. Dentro de este modo, no se entienden los comandos

asociados a saltos de línea, párrafo, etc...

Modo vertical: Se agrupan las cajas verticalmente unas sobre otras (man-
teniendo los puntos de referencia en la misma vertical), creando una

caja con anchura igual a la mayor de las anchuras de las subcajas, y

con altura total (suma de altura y profundidad) igual a la suma de

alturas y profundidades de las subcajas. Al igual que para el modo

horizontal, existen dos sub-modos

Ordinario: Es el modo por defecto, en el cual TEX va recogiendo

todas las cajas creadas en los modos horizontal y matemático,

para empaquetarlas verticalmente.

Interno: Se limita a apilar verticalmente cajas, creando una caja

indivisible (por ejemplo, cuando se construyen las columnas de

una tabla o matriz).

203
Modo matemático: Se abre para escribir símbolos o fórmulas matemá-
ticas, existe en dos variantes, ordinario (o tipo párrafo) y resaltado

(para fórmulas centradas y resaltadas), las cuales ya se han descrito

en la sección correspondiente.

En los sucesivo, discutiremos algunos comandos de TEX útiles para

crear y colocar cajas (que por supuesto, pueden ser utilizados dentro de

AT X; al n y al cabo, LAT X, como ya se ha repetido,


cualquier documento L E E

no es más que un conjunto de macros construidas a partir de TEX, que es

el lenguaje de bajo nivel que realmente compila el documento fuente).

6.1 Cajas horizontales: \hbox

El comando \hbox{Material} crea cajas indivisibles, en las que el conte-


nido se escribe de izquierda a derecha. El argumento Material es procesado

en modo horizontal restringido, y puede estar compuesto de varias cajas.

En realidad, el comando \mbox AT X no es más que


de L E \hbox

\def\mbox#1{\leavevmode\hbox{#1}}

(el comando \leavevmode se asegura de salir del modo vertical, si

estuviésemos dentro de él).

Cada caja creada mediante \hbox tiene una anchura natural depen-
diente de la anchura del Material incluido en ella. Al igual que ocurría

con el comando \makebox, es posible cambiar dicha anchura a nuestro

gusto

\hbox to Ancho{Material} Crea una caja de anchura Ancho y colo-


ca en ella el material de izquierda a derecha. Si la anchura del material

es menor que Ancho, se estirarán los espacios elásticos para ocupar

todo el espacio disponible, mientras que si es mayor, el material so-

bresaldrá de la caja (con lo que se sobreescribirá en texto que venga

a continuación); véase el siguiente ejemplo (donde se añade \fbox a

n de remarcar las cajas

\parindent 0pt Normal:


204
\fbox{\hbox{caja ejemplo}}
(texto) \\ Estiramos:
\fbox{\hbox to 3cm{caja ejemplo}}
(texto) \\ Contraemos: \fbox{\hbox
to 1cm{caja ejemplo}} (texto)

Normal: caja ejemplo (texto)

Estiramos: caja ejemplo (texto)

Contraemos: caja ejemplo


(texto)

\hbox spread Ancho{Material} Es análogo al anterior, con la dife-


rencia de que aumenta (o disminuye si el valor es negativo) la anchura

natural de la caja en la cantidad Ancho

\parindent 0pt
Estiramos: \fbox{\hbox spread
5mm{caja ejemplo}} (texto) \\
Contraemos: \fbox{\hbox spread
-5mm{caja ejemplo}} (texto)

Estiramos: caja ejemplo (texto)

Contraemos: caja ejemplo


(texto)

Con lo ya visto, podemos ahora entender la denición de los coman-

dos \leftline, \centerline, \rlap, etc..., que muestran la potencia de

combinar las manipulaciones de cajas y longitudes

\def\leftline#1{\hbox to \hsize{#1\hss}}
\def\rightline#1{\hbox to \hsize{\hss#1}}
\def\centerline#1{\hbox to \hsize{\hss#1\hss}}
\def\rlap#1{\hbox to 0pt{#1\hss}}
\def\llap#1{\hbox to 0pt{\hss#1}}

donde recordemos que el comando \hss equivale a \hspace{0pt plus


1fil minus 1fil}; la longitud \hsize almacena la anchura del texto:
normalmente equivale a \textwidth, aunque puede modicarse a volun-

tad.

205
6.2 Cajas verticales: \vbox

Las cajas verticales se construyen con el comando \vbox{Material}; este


comando inicia el modo vertical interno, aunque es posible que TEX ya

esté en ése modo antes de invocar el comando. El comportamiento del

comando depende de si la caja vertical contiene texto en el nivel más

alto, o si contiene el comando \vrule (explicado más adelante); en ambos


casos la anchura será la de una línea de texto (\hsize). Veamos algunos

ejemplos

\parindent 0pt \fbox{\vbox{Texto de


prueba \hbox{Una caja} \hbox{Otra
caja}}} \fbox{\vbox{\hbox{Una
caja} Texto de prueba \hbox{Otra
caja}}} \fbox{\vbox{\hbox{Una caja}
\hbox{Otra caja} \hbox{Otra caja mas}}}
\fbox{\vbox{\hsize 4cm Texto de prueba
\hbox{Una caja} \hbox{Otra caja}}} \par
% Nótese la diferencia entre
% modos horizontal y vertical:
\fbox{\vbox{Texto de prueba}} \par
\fbox{\vbox{\hbox{Texto de prueba}}}

Texto de prueba Una caja Otra caja

Una caja

Texto de prueba Otra caja

Una caja

Otra caja Texto de prueba Una caja

Otra caja mas Otra caja

Texto de prueba

Texto de prueba

Al igual que con las cajas horizontales, se puede jar de antemano la

altura de una caja vertical con

206
\vbox to Alto{Material} o \vbox spread Alto{Material}
cuyo signicado es idéntico a lo ya visto para \hbox (cambiando Ancho
por Alto).
Es interesante remarcar la exibilidad y potencia del comando \vbox
\hbox, no existen realmente co-
de TEX; a diferencia de lo que ocurre con

AT X con tanta capacidad; por ejemplo, \parbox o el entorno


mandos en L E

minipage permiten jar la altura de la caja, pero además requieren jar

su anchura, lo cual puede ser un inconveniente.

El comando \vbox to Alto{Material} alinea la línea base de la caja


global con la línea base de la última caja (es decir, la inferior) incluida en

la caja vertical. Existen también los comandos

\vtop to Ancho{Material} y \vcenter to Ancho{Material}


que alinean, respectivamente, la parte superior y central de la caja total

con la línea base (ATENCIÓN: \vcenter sólo se puede emplear dentro

del modo matemático).

\parindent 0pt
\fbox{\vbox to 5mm{\hbox{Texto 1}}}
\fbox{\vbox to 10mm{\hsize 3cm%
\vfil\centerline{Texto 2}\vfil}}
\fbox{\vtop to 5mm%
{\vfil\hbox{Texto 3}}}

Texto 2
Texto 1

Texto 3

6.3 Moviendo cajas

Dependiendo del modo (horizontal o vertical) en el que nos encontremos,

disponemos de diversos comandos para desplazar cajas. En el modo hori-

zontal, podemos desplazar cajas verticalmente con

\raise Desplazamiento o \lower Desplazamiento


207
donde Desplazamiento es cualquier longitud. De hecho, éstos dos coman-
dos son esencialmente el mismo, ya que \raise D = \lower -D. Al usar

éstos comandos, la línea base queda inalterada, aunque la altura y pro-

fundidad pueden cambiar. La nueva altura y profundidad de la caja se

calculan dependiendo de los desplazamientos. Véase el siguiente ejemplo,

donde se remarca la línea base con el comando \hrule

Texto de prueba; Texto de prueba; Texto de prueba\\


\fbox{\hbox{\hbox to 0pt{\vbox{\hrule width 6cm}} \hbox{pepe}
\lower3mm\hbox{pepe}\hbox{pepe}}}\ andres\ jaime\hspace{5mm}
\fbox{\hbox{\hbox to 0pt{\vbox{\hrule width 6cm}} \hbox{pepe}
\raise5mm\hbox{pepe} \hbox{pepe}}} \ andres \ jaime \\
Texto de prueba; Texto de prueba; Texto de prueba\\
\hrule

Texto de prueba; Texto de prueba; Texto de prueba


pepe
pepe pepe andres jaime pepe pepe andres jaime
pepe
Texto de prueba; Texto de prueba; Texto de prueba

El comando \kern Longitud se utiliza con carácter general para des-

plazar cajas una cantidad Longitud (que puede ser negativa). La dirección

del desplazamiento, horizontal o vertical, depende que en que modo esté

TEX trabajando; en el modo horizontal (en una caja \hbox) el desplaza-

miento es horizontal, mientras que en el modo vertical (en una caja \vbox)
el desplazamiento es vertical. Veamos como ejemplo el código TEX para

obtener el logotipo  TEX

\hbox{T\kern-.1666em\lower.5ex\hbox{E}\kern-.125ex X}

Para mover horizontalmente las componentes de una caja vertical \vbox


se utilizan los comandos

\moveleft Desplazamiento y \moveright Desplazamiento

Es interesante hacer notar que la anchura de la caja tras los despla-

zamientos sólo se modica con desplazamientos a la derecha, y no a la

208
izquierda: la anchura se calcula comenzando en el punto de referencia y

extendiéndose hacia la derecha hasta la parte derecha de la componente

más alejada; por ejemplo (nótese cómo ahora se utiliza \frame para remar-
car las cajas, en vez de \fbox, que dejaba un pequeño espacio \fboxsep

alrededor)

\frame{\vbox{\hbox{\frame{T}}%
\hbox{\frame{E}}\hbox{\frame{X}}}}
\hspace{1cm}\frame{\vbox{\moveleft10pt%
\hbox{\frame{T}}\moveright10pt\hbox%
{\frame{E}}\hbox{\frame{X}}}}%
\hspace{1cm}
\frame{\vbox{\hbox{\frame{T}}%
\moveleft12pt\hbox{\frame{E}}%
\moveright12pt\hbox{\frame{X}}}}
T T T

E E E

X X X

6.4 Modicando, creando y reutilizando cajas

AT X; veremos
Hemos visto ya el modo de guardar y reutilizar cajas en L E

ahora el modo, más general, de manipularlas a través de TEX. Podemos

declarar una caja nueva con el comando \newbox\NombreCaja, tras lo

cual se almacena una caja en la variable \NombreCaja con

\setbox\NombreCaja=Caja

A diferencia del comando \sbox, que sólo maneja cajas horizontales,

con el comando \setbox Caja puede ser tanto horizontal como vertical.

Otra forma de declarar cajas es hacer uso de los registros (256) de los

que TEX dispone para guardar cajas. Están numerados de 0 a 255, estando

el número 255 reservado para la caja de la página. Podríamos entonces,

en vez de declarar primero NombreCaja con \newbox, crear directamente

cajas numeradas con

209
\setbox1=Caja1 \setbox2=Caja2 etc...

(tras lo cual, para todos los comandos descritos a continuación, se debería

reemplazar \NombreCaja por 1, 2, ...)

Para insertar dentro de un documento los contenidos de una caja, se

emplean los comandos

\box\NombreCaja Tras ser usado, borra el contenido de la caja.

\copy\NombreCaja Usa el contenido de la caja sin borrarlo.

Por ejemplo \setbox1=\hbox{A} \fbox{\box1} \fbox{\box1} pro-


duce A , mientras que \setbox1=\hbox{A} \fbox{\copy1} \fbox{\copy1}

produce A A.

Para una caja \NombreCaja dada, las siguientes longitudes almacenan,


respectivamente, los valores de anchura, altura y profundidad de la caja

\wd\NombreCaja \ht\NombreCaja \dp\NombreCaja


\newbox\NuevaCaja y asigna-
Véase el siguiente ejemplo; denimos:

mos \setbox\NuevaCaja=\hbox{A B C} tras lo cual, \the\wd\NuevaCaja

produce 37.94351pt (la anchura de la caja). Podemos estirar la caja con

\wd\NuevaCaja=2\wd\NuevaCaja tras lo cual \frame{\copy\NuevaCaja}


produce A B C .

Los siguientes comandos son análogos a \box y \copy, pero, en vez

de simplemente escribir el contenido de la caja, las desmembran en sus

subcomponentes en el momento de ser usadas. Hay versiones horizontal y

vertical, así como versiones  \box y  \copy, que respectivamente vacían


o no la caja tras ser usada

\unhbox\NombreCaja \unvbox\NombreCaja
\unhcopy\NombreCaja \unvcopy\NombreCaja

El siguiente ejemplo ilustra la diferencia entre simplemente copiar una

caja, y desmembrarla con \unhbox

\setbox1=\hbox{A B}
\setbox2=\hbox to 2.0\wd1{\unhcopy1}
210
\frame{\copy2}
\setbox3=\hbox{A B}
\setbox4=\hbox to 2.0\wd3{\copy3}
\frame{\copy4}

A B A B

en el primer caso, tras desmembrar la caja, al construir una caja de anchura

doble a la primitiva los elementos se reparten tratando de llenar toda la

caja; en el segundo, al estar la caja intacta, los elementos se mantienen a

la derecha de la caja \box4, que contiene a \box3.

6.5 Rayas horizontales y verticales

En TEX se pueden utilizar dos tipos de rayas o cajas negras; las horizon-

tales, \hrule, y las verticales, \vrule. Para cada una de ellas se pueden

especicar tres dimensiones: Anchura, Altura y Profundidad

\hrule height Altura width Anchura depth Profundidad


\vrule height Altura width Anchura depth Profundidad

puede omitirse cualquiera de estos tres parámetros, en cuyo caso TEX

asignará valores por defecto

Altura 0.4 pt y Profundidad 0 pt, si la raya es horizontal (\hrule).

Anchura 0.4 pt, si la raya es vertical ( \vrule).

El resto de dimensiones se obtiene extendiendo la raya indenidamente

hasta completar el tamaño de la caja que la contiene.

La diferencia esencial entre \hrule y \vrule reside en que \hrule


es material vertical, por lo que sólo puede ser utilizado entre párrafos

o dentro de una caja vertical \vbox, mientras que \vrule es material

horizontal, por lo que sólo puede utilizarse dentro de un párrafo o de una

caja horizontal \hbox.

\hbox{Ejemplo \vrule width 2pt\vbox to


211
25pt{linea \par vertical}} \vspace{3mm}
\vbox{\hbox to 4cm{Otro ejemplo}
\kern 1mm\hrule height 1pt\kern 1mm
\hbox to 3cm{linea horizontal}}
linea
Ejemplo
vertical
Otro ejemplo

linea horizontal

\hbox{\vbox{\hbox to 25mm{\hfil%
\hbox{Texto 1}\hfil}\kern2pt\hrule}%
\vrule \lower7.5mm\vbox to 15mm{\hrule%
\kern-11pt\hbox to 25mm{\hfil%
\hbox{Texto 2}\hfil}\vfil\hbox to
25mm{\hfil\hbox{Texto 3}\hfil}%
\kern2pt\hrule}}
Texto 2

Texto 1

Texto 3

7 Repetición de objetos

Veremos ahora otro modo de repetir objetos, ligeramente diferente del co-

mando \multiput ya visto. En vez de proporcionar el número de objetos

a repetir, puede interesarnos llenar un cierto espacio, de longitud ja o va-

riable, con copias de un objeto. Mediante el comando \leaders se pueden


obtener copias de un objeto en tal forma. Para ello, debemos especicar

el objeto a copiar y el espacio que debe ser completado con copias de tal

objeto. La sintaxis del comando es la siguiente

\leaders Objeto \hskip Longitud

donde hay que tener en cuenta que Objeto debe ser una caja, y Longitud
puede ser cualquier longitud (incluyendo elásticas). Se puede reemplazar

\hskip 1fil por simplemente \hfil, o \hskip 1fill por \hfill. Por

ejemplo

212
\noindent\null\leaders\hrule\hfill
\null\\[2mm]
\null\leaders\hbox{/\textbackslash}%
\hskip.4\hsize\null\\[2mm] \hbox to
4cm{\leaders\hbox{\frame{\hbox to
10pt{\vbox to 10pt{}}} }\hfill}

/\/\/\/\/\/\/\/\/\/\/\/\

Es importante tener en cuenta que es necesario marcar los puntos

entre los que actúa el comando \leaders, sobre todo si estamos utilizando
longitudes elásticas. Es por eso que se utiliza en el ejemplo anterior \null

(otras posibilidades equivalentes serían \mbox{} o \kern0pt).

En el caso de que el objeto a repetir no sea un múltiplo entero del

tamaño de la caja que contiene a las copias del objeto, aparecerá cier-

ta asincronía. Para solucionar esto, se dispone de otras dos variantes de

\leaders para repetir un objeto

\cleaders Objeto \hskip Longitud


\xleaders Objeto \hskip Longitud

mientras que \leaders aparta el espacio sobrante a la derecha, \cleaders


reparte el espacio sobrante a ambos lados (centrando las copias del objeto

en la caja); \xleaders distribuye el espacio sobrante entre cada copia del


objeto, ajustando las copias del objeto a la caja; por ejemplo

\frame{\hbox to 4cm{\leaders%
\hbox{$\bigotimes$}\hfill}}\par
\frame{\hbox to 4cm{\cleaders%
\hbox{$\bigotimes$}\hfill}}\par
\frame{\hbox to 4cm{\xleaders%
\hbox{$\bigotimes$}\hfill}}
213
NNNNNNN
NNNNNNN
NNNNNNN

De igual manera a lo ya visto, se pueden repetir objetos en la di-

rección vertical; para ello, simplemente se cambia el segundo argumen-

to del comando\leaders de horizontal ( \hskip Longitud) a vertical

(\vskip Longitud).

8 Sistematizando tareas

Veremos ahora una serie de comandos útiles para sistematizar tareas; ima-

ginemos que cada vez que se inicia un párrafo, fórmula, caja, ..., queremos

que se ejecuten una serie de comandos. Para ello, se tienen las siguientes

posibilidades

\everypar{Comandos} Antes de empezar a dar formato a cada párra-


fo, se ejecutan Comandos. Veamos un ejemplo, en el que denimos un

nuevo contador párrafo, y para cada párrafo, se le pone como título

Párrafo n en negrita y centrado

\parindent 0pt \parskip 10pt


\newcounter{parrafo} \setcounter{parrafo}{0}
\everypar{\addtocounter{parrafo}{1}
\centerline{\bfseries Párrafo %
\theparrafo}\\[1mm]}
Esto es un primer párrafo de
ejemplo; en el código anterior...\par
...se puede ver cómo incrementamos
el valor del contador \texttt{parrafo
al empezar cada párrafo...\par ...y l
recuperamos, para imprimirlo, con el
comando \verb@\theparrafo@.

Párrafo 1
214
Esto es un primer párrafo de ejemplo; en el código anterior...

Párrafo 2
...se puede ver cómo incrementamos el valor del contador parrafo al

empezar cada párrafo...

Párrafo 3
...y lo recuperamos, para imprimirlo, con el comando \theparrafo.

\everymath{Comandos} Análogo a \everypar; se ejecutan los co-

mandos cada vez que entremos en modo matemático ordinario (o mo-

do texto).

\everydisplay{Comandos} En este caso, los comandos se ejecutan

cada vez que se abre el modo matemático resaltado. Imaginemos que

queremos que todas las fórmulas resaltadas se escriban en color ro-

jo; para conseguirlo, simplemente se puede declarar \everydisplay{


\color{red}}.

\everyhbox{Comandos} y \everyvbox{Comandos} Ejecutan los co-

mandos cada vez que comienze una caja horizontal ( \hbox) o vertical
( \vbox), respectivamente.

9 Condicionales y bucles

El compilador TEX posee amplias capacidades a la hora de programar

diversas acciones. Además de poder manejar diversos registros (contadores,

longitudes, cajas) con total exibilidad, su potencia se ve reforzada al ser

posible incluir bucles y condicionales dentro de un documento.

Un condicional es una estructura de control que elige entre diversas

acciones en función del valor de una variable lógica; su forma general es

IF <Test> [Instrucciones A] ELSE [Instrucciones B] END IF

lo cual signica que, de cumplirse la condición <Test>, se ejecutarán las

A B
instrucciones  , y de no cumplirse, las instrucciones  . En lenguaje

TEX, el condicional se escribe

215
\if<Test> [Parte A] \else [Parte B] \fi

aunque podemos prescindir de cualquiera de las partes ( A o B), y tener

simplemente

\if<Test> [Parte A] \fi \if<Test> \else [Parte B] \fi

(el último, correspondería a una versión de negación del condicional).

Los condicionales pueden anidarse sin problemas; cada \fi se asume

que corresponde con el más reciente \if. A continuación describiremos al-


gunos de los 17 condicionales que están denidos en TEX, correspondientes

a diversos formatos de la condición <Test>

\ifnum Numero1 Relacion Numero2


Relacion igual a <, >ó
Se utiliza para comparar números enteros, con

=. Como ejemplo, denimos un contador \cuatrodigit, que imprime

números es formato de cuatro dígitos, con independencia de su tamaño

\def\cuatrodigit#1{%
\ifnum #1<1000 0\fi
\ifnum #1<100 0\fi
\ifnum #1<10 0\fi #1}

tras lo cual

\cuatrodigit{8} - \cuatrodigit{18} -
\cuatrodigit{198} - \cuatrodigit{1238}

produce: 0008 - 0018 - 0198 - 1238.

\ifodd Numero
sirve para comprobar si un número entero es impar. En el caso de que

queramos analizar el valor de un determinado contador, recordemos

que debemos sustituir Numero por \value{NombreContador}, si es-

AT X. Por contra, si
tamos trabajando con un contador denido en L E

el contador ha sido denido en TEX(con \newcount), podemos recu-

perar el valor numérico con \the\NombreContador o


\number\NombreContador. Por ejemplo, compilando

216
Esta página es \iffodd\value{page} impar \else par\fi

obtendremos Esta página es impar, si es impar, o Esta página es

par si es par.

\ifdim Dimension1 Relacion Dimension2


se utiliza para comparar dos longitudes. Como ejemplo, vamos a cons-

truir un comando que crea una caja enmarcada con un texto en ta-

maño \huge (que será el primer argumento del comando) y un texto

de leyenda, que se colocará centrada si la longitud de la leyenda es

menor que la del texto principal, o en estilo párrafo si es mayor

\newlength{\anchura}
\def\textoresaltado#1#2{%
\setbox1=\hbox{\fbox{\huge#1}}
\settowidth{\anchura}{#2}\vbox{\copy1%
\vspace{6pt}\ifdim\anchura<\wd1\hbox
to\wd1{\hss#2\hss}\else%
\hbox{\parbox{\wd1}{#2}}\fi}}
\textoresaltado{Juan y Ana}{quieren
un coche}\par\medskip
\textoresaltado{Juan y Ana}{necesitan
comprarse un coche nuevo porque el
antiguo se les ha quedado viejo}

Juan y Ana
quieren un coche

Juan y Ana
necesitan com-

prarse un coche

nuevo porque el

antiguo se les ha

quedado viejo

\ifhmode  \ifvmode  \ifmmode


sirven para comprobar, respectivamente, si estamos dentro del modo

217
horizontal, vertical, o matemático (en cada caso, no se distingue entre

los diferentes sub-modos). Por ejemplo, el comando \ensuremath de

AT X está denido como


L E

\newcommand{\ensuremath}[1]{\ifmmode #1\else $#1$\fi}

\ifcase Numero [Caso n=0] \or [Caso n=1] \or ...


[Caso n=M] \else [Caso n=Otro Numero] \fi
sirve para ejecutar diferentes acciones, de acuerdo a los valores que

tome la variable Numero (que puede, por ejemplo, ser un contador);

si n=0 se ejecutaran las primeras instrucciones, si n=1 las, segundas,

y así sucesivamente hasta M; opcionalmente podemos colocar más ins-


trucciones después de \else, que se ejecutarán si Numero es menor
que 0 o mayor que M. Véase el siguiente ejemplo, que traduce números
naturales a notación hexadecimal

\def\hexadec#1{\ifcase #1 %
0\or 1\or 2\or 3\or 4\or %
5\or 6\or 7\or 8\or 9\or %
A\or B\or C\or D\or E\or F\fi}

Comando Resultado

\hexadec{7} 7

\hexadec{12} C

\ifx Argumento1Argumento2
compara dos argumentos entre sí, siendo verdadero si son iguales y

falso si son distintos. Argumento1 y Argumento2 pueden ser carac-

teres, cajas, comandos... Es importante puntualizar que, al comparar

cadenas de caracteres o cajas, es necesario con anterioridad incluir

tales contenidos en sendos comandos, que serán después comparados.

Por ejemplo

\def\a{Hola} \def\b{Hola} \def\c{hola}


\def\d{H} \def\e{\hbox{hola}}
\def\f{\hbox{hola}}
218
Comparaci\'{o}n 1:
\ifx AA iguales \else distintos \fi\\
% (caracteres aislados son comparables)
Comparación 2:
\ifx \a\b iguales \else distintos \fi\\
Comparación 3:
\ifx \a\c iguales \else distintos \fi\\
Comparación 4:
\ifx H\d iguales \else distintos \fi\\
Comparación 5:
\ifx \c\e iguales \else distintos \fi\\
Comparación 6:
\ifx \e\f iguales \else distintos \fi\\

Comparación 1: iguales

Comparación 2: iguales

Comparación 3: distintos

Comparación 4: distintos

Comparación 5: distintos

Comparación 6: iguales

AT X también proporciona algunos condicionales predenidos, que es


L E

bueno conocer

\if@twoside  \if@twocolumn
son verdaderos si se está procesando el documento con las opciones

twoside o twocolumn respectivamente, y falsos en caso contrario.

\@ifnextchar Caracter{ParteA}{ParteB}
Se procesa ParteA en caso de que el siguiente caracter coincida con

Caracter, y ParteB en caso contrario. Este condicional es muy uti-

AT X en los comandos que utilizan argumentos opcionales,


lizado en L E

caracterizados por ir entre corchetes. Veamos un ejemplo de cómo de-

nir un comando con dos argumentos, uno de ellos optativo; queremos

recuadrar un texto dado con una línea de grosor variable, 0.4 pt por
defecto

219
\def\mirecuadro[#1]#2{{\fboxrule#1\fbox{#2}}}
\makeatletter
\def\recuadro{\@ifnextchar[{\mirecuadro}{
\mirecuadro[0.4pt]}}
\makeatother

Tras esto, \recuadro{Prueba} resultará en Prueba , mientras que

si queremos cambiar el grosor de línea a 1pt, deberemos escribir

\recuadro[1pt]{Prueba} −→ Prueba . ¾Por qué los comandos


\makeatletter y \makeatother? La razón está en que, por defec-
to, está prohibido utilizar el símbolo @ en los comandos dentro de

un documento; éste comando se utiliza frecuentemente en las clases

de documentos o paquetes, por lo que se restringe su uso para evi-

tar coincidencias casuales con comandos ya denidos. El comando

\makeatletter levanta esta prohibición, mientras que el comando

\makeatother la vuelve a recuperar.

Podemos utilizar lo aprendido en el ejemplo anterior para construir

comandos más complicados. Por ejemplo, procedamos a modicar el co-

mando \recuadro (renombrándolo a \Recuadro) para que ahora admita

dos argumentos optativos, según la sintaxis

\Recuadro[Grosor](Color){Texto}

siendo Grosor la anchura del recuadro (0.4pt por defecto), y Color su co-
lor (rojo por defecto). Utilizando recursivamente el condicional \@ifnextchar

se obtiene el resultado deseado.

\makeatletter
\def\Mirecuadro(#1)#2{{\color{#1}\fbox{\color{black}#2}}}
\def\Mirecuadroaux[#1]{\fboxrule#1\@ifnextchar(%
{\Mirecuadro}{\Mirecuadro(red)}}
\def\Recuadro{\@ifnextchar[{\Mirecuadroaux}{
\Mirecuadroaux[0.4pt]}}
\makeatother
220
\Recuadro{Hola} −→ Hola
\Recuadro[2pt](blue){Hola} −→ Hola

9.1 Nuevos condicionales

Volviendo a TEX, veremos ahora la forma de denir nuevos condicionales

con el comando \newif, de sintaxis

\newif\ifNombre

dondeNombre corresponderá al nombre del nuevo condicional. El comando


\newif se encarga de denir tres nuevos comandos

\Nombretrue Asigna a la variable lógica Nombre el valor verdadero.

\Nombrefalse Asigna a la variable lógica Nombre el valor falso.

\ifNombre... \else... \fi Nuevo condicional, que ejecuta una ac-


ción u otra según el valor que se le haya asignado anteriormente a la

variable lógica Nombre.

Como ejemplo, denamos un nuevo entorno ocultar, de forma que el

texto dentro de tal entorno se muestre o no en el documento nal, depen-

diendo del valor de una variable lógica

\newbox\boxocultar
\newif\ifocultar
\newenvironment{ocultar}
{\setbox\boxocultar\vbox\bgroup}
{\egroup\ifocultar\else\par\unvbox\boxocultar\fi}

tras esta denición, si se coloca el comando \ocultartrue, todo el texto

dentro de entornos ocultar que estén a continuación de este comando no se

verá en el documento nal; en cambio, sustituyéndolo por \ocultarfalse,


se reestablecerá el texto dentro de tales entornos, por ejemplo

\ocultartrue \begin{ocultar}
texto de prueba que no se ve
221
\end{ocultar}
\ocultarfalse \begin{ocultar}
texto de prueba que si se ve
\end{ocultar}
texto de prueba que si se ve

La utilidad de éste entorno puede estar, por ejemplo, en la inclusión de

notas y comentarios que puede convenirnos suprimir en el documento nal;

añadir un comando \ocultartrue es más rápido que comentar líneas una


por una. Merece la pena analizar un poco la denición del nuevo entorno

1) \newbox\boxocultar Dene una nueva caja para almacenar el texto


oculto.

2) \setbox\boxocultar\vbox\bgroup Abre una caja vertical y la alma-


cena en \boxocultar; nótese el empleo del comando \bgroup: éste

comando es análogo a  {, es decir, es un delimitador de grupo. La

sutileza radica en que, de usar directamente  {, habría un conicto

con la sintaxis del comando \newenvironment


3) {\egroup\ifocultar\else\par\unvbox\boxocultar\fi} Tras ha-

ber abierto la caja vertical, y haberse rellenado con todo el texto

dentro del entorno, se cierra con \egroup (análogo a  }); recordemos


que todo lo que iba entre el primer conjunto de llaves corresponde a

AT X a ejecutar al entrar en el entorno, mientras


las instrucciones L E

que este segundo conjunto de instrucciones corresponde a lo que debe

hacerse al salir del entorno. Tras eso, se comprueba con ifocultar


si el texto debe ocultarse, en cuyo caso, no se hace nada, y, en caso

contrario, se deshace e imprime la caja \boxocultar.

9.2 Bucles

Se realizan bucles con el comando

\loop ParteA \if... ParteB \repeat

donde ParteA y ParteB son conjuntos de comandos, y \if es cualquier

condicional, sin la correspondiente partícula \fi. TEX procesa primero

222
ParteA; si la condición es verdadera, procesa ParteB, y repite el proceso

comenzando de nuevo porParteA; si no, inmediatamente se sale del bucle.


Denamos como ejemplo un comando que imprima los primeros n números

naturales

\newcount\minum
\def\numeros#1{\ifnum#1< 1%
\else 1\minum=1\loop
\advance\minum by 1%
\ifnum\minum<#1,
\the\minum\repeat\fi}
\numeros{40}

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,

24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40

AT X están predenidos bucles asociados a condicionales especí-


En L E

cos, útiles para manejar números y longitudes

\@whilenum{TestNum} \do {Accion}

\@whiledim{TestLong} \do {Accion}

En ellos, se evalúa la relación numérica TestNum o TestLong (compa-

ración de números o longitudes, respectivamente); mientras sea verdadera

se procesarán las instrucciones en Accion, terminando el bucle en el mo-

mento en que la relación sea falsa. El siguiente ejemplo calcula la sucesión

de todos los números pares menores que uno dado

\newcount\cuenta
\makeatletter \def\pares#1{%
\minum=2\@whilenum\minum<#1\do
{\the\minum, \advance\minum by 2}}
\makeatother
Los n\'{u}meros pares menores que 95
son: \pares{95}
223
Los números pares menores que 95 son: 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,

22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60,

62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94,

También es posible denir bucles en los que la condición de control sea

un condicional \ifNombre denido en TEX con \newif

\@whilesw\ifNombre\fi{Accion}

con lo que TEX procesará los comandos de Accion hasta que el condicional
\ifNombre sea falso.

Finalmente, se pueden también construir estructuras  for / next, en

las cuales se ejecuta una serie de acciones para cada uno de los elementos

de una lista. Se utiliza la sintaxis

\@for\Nombre:=\lista\do{Accion}

donde \Nombre es una variable (que no hace falta denirla previamente)

que va almacenando los diferentes elementos de una lista ( \lista), que

debe ser previamente denida con \def; los elementos de la lista han de

estar separados entre sí por comas. En el siguiente ejemplo, primeramente

denimos a través de TEX un comando \longitud{Palabra} para contar


el número de letras de una palabra, que luego utilizamos para crear un

tabla con las longitudes de una lista de palabras almacenadas en \lista

\newcount\nna \def\longitud#1{\nna=0%
\expandafter\contar#1\end\number\nna}
\def\contar#1{%
\ifx#1\end\let\next=\relax
\else\advance\nna by1
\let\next=\contar\fi\next}
La longitud de la frase ``pepe tiene
un coche'' es de \longitud{pepe
tiene un coche} caracteres no blancos

La longitud de la frase pepe tiene un coche es de 16 caracteres no blancos

224
\def\lista{Pepe,Juan,Andr\'{e}s,Antonio}
\begin{tabular}{l}
Nombre y longitud \\ \hline
\makeatletter \@for\nombre:=\lista
\do{\hbox to 30mm{\nombre\hss}%
\longitud{\nombre} \\ } \makeatother
\end{tabular}

Nombre y longitud

Pepe 4

Juan 4

Andrés 7

Antonio 7

9.3 Otros ejemplos

Invertir una palabra

\def\Invertir#1{%
\def\INV{}\INVCAD#1\end\INV}%
\def\INVCAD#1{%
\ifx#1\end\let\next=\relax
\else\CONCAD#1%
\let\next=\INVCAD\fi\next}%
\def\CONCAD#1{\edef\INV{#1\INV}}
\Invertir{Espejo}Espejo\par
Curioso\Invertir{Curioso}

ojepsEEspejo

CuriosoosoiruC

225
Números primos

\newif\ifprime \newif\ifunknown %
\newcount\n \newcount\p %
\newcount\d \newcount\a %
\def\primes#1{2,~3 % (#1 is at least 3)
\n=#1 \advance\n by-2 % n more to go
\p=5 % odd primes starting with p
\loop\ifnum\n>0 \printifprime\advance\p by2 \repeat}
\def\printp{, % we will invoke \printp if p is prime
\ifnum\n=1 \fi
\number\p \advance\n by -1 }
\def\printifprime{\testprimality \ifprime\printp\fi}
\def\testprimality{{\d=3 \global\primetrue
\loop\trialdivision \ifunknown\advance\d by2 \repeat}}
\def\trialdivision{\a=\p \divide\a by\d
\ifnum\a>\d \unknowntrue\else\unknownfalse\fi
\multiply\a by\d
\ifnum\a=\p \global\primefalse\unknownfalse\fi}

Tras lo cual, \primes{200} calcula e imprime los 200 primeros números

primos: 2, 3 , 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,

67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149,

151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229,

233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313,

317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409,

419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499,

503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601,

607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691,

701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809,

811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907,

911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013,

1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091,

226
1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181,

1187, 1193, 1201, 1213, 1217, 1223.

227
4 La clase FcUnp

1 Introducción

Cualquier estudiante de pregrado de la Facultad de Ciencias de la Universi-

dad Nacional de Piura (FC-UNP) que desea redactar su tesis se encuentra

con el inconveniente de generar, en formato adecuado, las primeras cinco

páginas de la misma; así como, las páginas de la lista de contenidos, lis-

ta de guras, lista de tablas, anexos, apéndices y resumen. Además de la

carencia de un adecuado editor de fórmulas matemáticas que son de uso

común a tales estudiantes.

Este trabajo presenta la clase Fc Unp que permite, al estudiante de

pregrado de la FC-UNP, redactar todo el trabajo tesis de acuerdo con

el formato que exige el Reglamento de Tesis de dicha facultad. Adicio-

nalmente, y dado que es requisito presentar un ejemplar de la tesis en

formato virtual, la clase Fc Unp permite obtener un archivo PDF de la

AT X. De este modo, el alumno que utilice la clase


misma, mediante PDFL E

Fc Unp para redactar su trabajo de tesis se concentrará únicamente en el


contenido del mismo, sin tener que invertir tiempo en darle formato. Por

otra parte, si la FC-UNP ocializa el uso de dicha clase obtendrá como

benecio que la totalidad de los trabajos tendrán un formato único y de

nivel profesional.

228
2 Cómo invocar la clase FcUnp

La clase Fc Unp es una modicación de la clase estándar book de LATEX.


Por tanto, es posible que el estudiante utilice todos los comandos de book

en la preparación del cuerpo de la tesis. La clase Fc Unp se invoca reem-

plazando book por fcunp en la primera línea del documento:

\documentclass{fcunp}
%
\begin{document}
<Cuerpo de la tesis>
\end{document}

3 Comandos implementados

3.1 Comando para separar datos ingresados

1) \and
Permite separar diversos datos, tales como: nombres de autores, nom-

bres de patrocinadores, dedicatorias, etc.

3.2 Comandos para ingresar datos

1) \school{<n >}
Permite ingresar un número entero positivo entre 1 y 5, incluidos, pa-
ra identicar la Escuela Profesional. Admite n = 1 para referirse a

la Escuela de Biología, n = 2 para referirse a la Escuela de Física,

n=3 para referirse a la Escuela de Matemática, n=4 para referirse

a la Escuela de Electrónica ó n = 5 para referirse a la Escuela de

Estadística.

Cabe mencionar que de acuerdo al número ingresado se obtendrá auto-

máticamente la primera primera página (cubierta) en el color asignado

a la respectiva escuela.

2) \title{<Título de la tesis >}

Permite ingresar el título de la tesis.

229
3) \author{<Autor de la tesis >}

Permite ingresar el nombre del autor de la tesis. En caso de ser dos au-

tores los nombres de los mismos deberán ir separados con el comando

\and.

4) \sponsor{<Patrocinador >}
Permite ingresar el nombre del patrocinador de la tesis. En caso de ser

dos patrocinadores los nombres de los mismos deberán ir separados

con el comando \and.

5) \jury{<Miembros del Jurado >}

Permite ingresar los nombres de los miembros del Jurado de la tesis,

los mismos que se separarán con el comando \and.

6) \dedication{<Dedicatoria >}
Permite ingresar la dedicatoria del autor. En caso de ser dos autores

las dedicatorias de los mismos deberán ir separadas con el comando

\and.

7) \acknowledgments{<Agradecimientos >}
Permite ingresar los agradecimientos del autor, los mismos que se

separarán con el comando \and.

8) \resumen{<Resumen >}
Permite ingresar el resumen de la tesis.

9) \palabrasclave{<Palabras clave >}

Permite ingresar las palabras clave.

10) \abstract{<Resumen en inglés >}

Permite ingresar el resumen en idioma inglés.

11) \keywords{<Palabras clave en inglés >}

Permite ingresar las palabras clave en idioma inglés.

3.3 Comandos para generar páginas

1) \makecover
Permite generar la portada.

230
2) \maketitle
Permite generar la página de título.

3) \makesignature
Permite generar la página de rmas.

4) \makededication
Permite generar la página de la(s) dedicatoria(s).

5) \makeacknowledgments
Permite generar la página de los agradecimientos.

3.4 Otros comandos

1) \frontmatter
Apertura de la tesis. La numeración de las páginas ubicadas después

de este comando se realiza con números romanos.

2) \mainmatter
Parte central de la tesis. Aquí también se ubican las conclusiones y

recomendaciones mediante el comando \conclusions, los anexos con


el comando \annex y los apéndices con el comando \appendix.

3) \backmatter
Cierre de la tesis.

4 Paquetes incorporados

La clase Fc Unp incorpora los siguientes paquetes estándar de LATEX:


geometry Este paquete se utiliza para establecer los márgenes de página
de la Tesis.

babel Este paquete se utiliza activando la opción spanish con la nalidad


de conseguir una adecuada partición silábica de las palabras.

inputenc Este paquete se utiliza activando la opción latin1 con la na-


lidad de permitir el uso y la compilación de caracteres que no corres-

ponden al código ASCII.

231
amsthm Este paquete se utiliza para darle un formato adecuado a las

deniciones, teoremas, corolarios, lemas, proposiciones, etc. y también

a las demostraciones.

graphicx Este formato se utiliza para poder insertar grácos y es preciso


incluirlo en la clase pues de otra forma no se podría incluir el logo de

la UNP en la cubierta.

epstopdf Este paquete se utiliza para convertir los grácos .eps a .pdf
AT X.
y poder así generar el archivo PDFL E

hyperrefn Este paquete constituye una ligera modicación del paquete

estándar hyperref y se utiliza para generar los hipervínculos del índi-


ce general, de las referencias, de las direcciones web, así como también

para generar los marcadores.

5 Un ejemplo especíco

El ejemplo que se presenta en esta sección permite observar el código

elemental de una tesis, así como algunas páginas importantes en formato

dvi (ver Figs. 4.1, 4.2, 4.3, 4.4 y 4.5), generadas con la clase Fc Unp .
AT X
Además en las guras 4.6 y 4.7 se aprecia la salida obtenida por PDFL E

con el paquete hyperrefn que permite generar hipervínculos y marcadores


en forma automática.

La línea 1 del código anexado invoca la clase Fc Unp . La línea 3 invoca


tres paquetes, de la American Mathematical Society, para trabajar con

matemática. Las líneas 517, muestran el correcto uso de los comandos

para ingresar datos y del comando para separar datos ingresados ; mien-

tras que las líneas 2327, 77 y 78 muestran el correcto uso de los comandos

para generar páginas. Las líneas 21, 35 y 67, separan la apertura, la parte

central y el cierre de la tesis y las líneas 53, 60 y 64 indican el inicio de

las conclusiones (y recomendaciones), los anexos y apéndices, respectiva-

mente. El resto de líneas terminan de completar el cuerpo del documento

AT X generado con la clase


y son de uso común en cualquier documento L E

estándar book.

232
Código Anexado

1 \documentclass{fcunp}
2
3 \usepackage{amssymb,amsmath,amsfonts}
4
5 \school{3}
6 \title{``Título de la Tesis''}
7 \author{Primer Autor \and Segundo Autor}
8 \sponsor{Primer patrocinador \and Segundo patrocinador}
9 \jury{Presidente \and Secretario \and Vocal}
10 \dedication{Primera dedicatoria.\\\textit{Primer Autor} \and
11 Segunda dedicatoria.\\\textit{Segundo Autor}}
12 \acknowledgments{Primer agradecimiento. \and
13 Segundo agradecimiento.}
14 \resumen{Este es el resumen.}
15 \palabrasclave{Palabraclave1, palabraclave2.}
16 \abstract{This is the abstract.}
17 \keywords{Keyword1, keyword2.}
18
19 \begin{document}
20
21 \frontmatter
22
23 \makecover
24 \maketitle
25 \makesignature
26 \makededication
27 \makeacknowledgments
28 \chapter{Prólogo}
29 Éste es el prólogo.
30 \tableofcontents
31 \listoffigures
32 \chapter{Introducción}
233
33 Ésta es la introducción.
34
35 \mainmatter
36
37 \chapter{Este es el primer capítulo}
38 Texto para el primer capítulo.
39 \section{La primera sección del primer capítulo}
40 Texto para la primera sección del primer capítulo.
41 \begin{equation}ax^2+bx+c=0\,.\end{equation}
42
43 \chapter{Este es el segundo capítulo}
44 \section{La primera sección del segundo capítulo}
45 Texto para la primera sección del segundo capítulo.
46
47 \begin{figure}
48 \centering
49 \includegraphics[scale=0.5]{img/unp.eps}
50 \caption{Mi primera figura.}
51 \end{figure}
52
53 \conclusions
54 \chapter{Conclusiones}
55 Aquí van las conclusiones.
56
57 \chapter{Recomendaciones}
58 Aquí van las recomendaciones.
59
60 \annex
61 \chapter{Este es un anexo}
62 Texto para el anexo.
63
64 \appendix
65 \chapter{Este es un apéndice}

234
66 Texto para el apéndice.
67
68 \backmatter
69
70 \begin{thebibliography}{CM}
71 \bibitem{Buh}
72 Buhmann, M. D. (2004).
73 Radial Basis Functions: Theory and Implementations.
74 Cambridge University Press. United Kingdom.
75 \end{thebibliography}
76
77 \makeresumen
78 \makeabstract
79
80 \end{document}

Fin

Adicionalmente, el texto referente a las escuelas y al título profesional,

así como el color de las primeras páginas, es modicado en forma automá-

\school{1} (Fig. 4.8,


tica cuando el código de la línea 5 se sustituye por

izquierdaarriba), \school{2} (Fig. 4.8, derechaarriba), \school{4} (Fig.

4.8, izquierdaabajo) y \school{5} (Fig. 4.8, derechaabajo).

6 Obtención de la clase FcUnp

El Reglamento de Tesis de la Facultad de Ciencias, la clase Fc Unp , un


archivo PDF de este libro, el paquete hiperrefn; así como los archivos
ejemplo.tex, ejemplo.dvi y ejemplo.pdf (los dos últimos generados a
partir del primero con la clase Fc Unp ) pueden obtenerse desde

https://sites.google.com/site/ripanaque/docencia
235
Figura 4.1 Cuatro primeras páginas (dvi outputs) de la tesis
formateadas con la clase Fc Unp .

236
Figura 4.2 Los agradecimientos, el prólogo y el índice general
y (dvi outputs) son automáticamente formateadas con la clase
Fc Unp .

237
Figura 4.3 El índice de guras, la introducción y las primeras
págimas de los capítulos I y II (dvi outputs) son automáticamente
formateadas con la clase Fc Unp .

238
Figura 4.4 Las conclusiones, recomendaciones, anexos y apéndi-
ces (dvi outputs) son automáticamente formateadas con la clase
Fc Unp .

239
Figura 4.5 La bibliografía, el resumen y el abstract (dvi outputs)
también son automáticamente formateadas con la clase Fc Unp .

240
Figura 4.6 Salida formateada por Fc Unp y producida por
PDFLATEX con el paquete hyperrefn, con sus respectivos marca-
dores.

241
Figura 4.7 Salida formateada por Fc Unp y producida por
PDFLATEX con el paquete hyperrefn, con sus respectivos hiper-
vínculos y marcadores.

242
Figura 4.8 Formato automático por escuelas con Fc Unp .

243
7 Código de la clase FcUnp

%%
%% Este es el archivo `fcunp.cls',
%% generado con texmaker.
%%
%% Copyright 2011
%%
%% Este archivo consiste en una modificaci\'{o}n, de la
%% clase book, hecha por el Prof. R. Ipanaqu\'{e}

\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{fcunp}[2011/01/01 v2.0
LaTeX document class for the Bachelor Thesis of
the Sciences Faculty at the National University of Piura]

\newcommand\@ptsize{}% tama\'{n}o de letra 12

\newif\if@mainmatter\@mainmattertrue
\newif\if@chapter\@chaptertrue
\newif\if@conclusions\@conclusionsfalse
\newif\if@annex\@annexfalse
\newif\if@appendix\@appendixfalse
\newif\if@final\@finaltrue

\newcommand{\setstretch}[1]{% control de espacio con \setstretch


\def\baselinestretch{#1}%
\@currsize
}
\newif\if@pdftex \@pdftexfalse% condicional para pdfLaTeX
\ifx\pdfoutput\undefined
\else
\ifx\pdfoutput\relax
\else
244
\ifcase\pdfoutput
\else
\@pdftextrue
\fi
\fi
\fi

%Define tama\~{n}o de papel


\setlength\paperheight{297mm}
\setlength\paperwidth{210mm}
%Fin

%control de viudas y hu\'{e}rfanas


\widowpenalty=10000
\clubpenalty=10000
%Fin

%Para evitar los overfull a toda costa


\pretolerance=9000
\tolerance=9000
%Fin

%Define tama\~{n}o de letra


\renewcommand\@ptsize{2}
%Fin

\DeclareOption{draft}{\@finalfalse\setlength\overfullrule{5pt}}
\if@compatibility\else
\DeclareOption{final}{\@finaltrue\setlength\overfullrule{0pt}}
\fi

%Formato por defecto


\ExecuteOptions{final}

245
\ProcessOptions
\input{bk1\@ptsize.clo}
\renewcommand\baselinestretch{2}
\setlength{\parskip}{10pt}
\setlength{\footnotesep}{5mm}
\setlength\parindent{12mm}
\@lowpenalty 51
\@medpenalty 151
\@highpenalty 301
\setcounter{topnumber}{2}
\renewcommand\topfraction{.7}
\setcounter{bottomnumber}{1}
\renewcommand\bottomfraction{.3}
\setcounter{totalnumber}{3}
\renewcommand\textfraction{.2}
\renewcommand\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\renewcommand\dbltopfraction{.7}
\renewcommand\dblfloatpagefraction{.5}

%Numeraci\'{o}n de p\'{a}ginas
\def\ps@headings{%
\let\@oddfoot\@empty
\def\@oddhead{\hfil\thepage}}
%Fin

%T\'{i}tulo
\def\title#1{\gdef\@title{\MakeUppercase{#1}}}
%Fin

%Oculta textos
\newbox\boxocultar
\newif\ifocultar

246
\newenvironment{ocultar}
{\setbox\boxocultar\vbox\bgroup}
{\egroup\ifocultar\else\par\unvbox\boxocultar\fi}
%Fin

%Autor
\newcounter{@au}

\def\author#1{\gdef\@author{#1}}

\def\authorname{\def\and{\par}\MakeUppercase\@author}

\def\authornumber{
\begingroup
\setcounter{@au}{1}%
\def\and{\stepcounter{@au}}%
\ocultartrue%
\begin{ocultar}
\@author
\end{ocultar}
\endgroup}

\def\authorsig{
\begingroup
\setcounter{@au}{1}%
\def\and{\vfill%\vskip 2em
\rule{6.5cm}{0.25pt}\vskip 0.2em
\textit{Ejecutor}\vskip -3.75em
\stepcounter{@au}}%
\setbox0=\vbox{\@author}%
\rule{6.5cm}{0.25pt}\vskip 0.2em
\textit{Ejecutor}\vskip -3.75em
\@author%

247
\endgroup}
%Fin

%Escuela
\def\school#1{\gdef\@school{#1}}

\def\schoolname{%
\ifcase \@school%
\relax \or%
CIENCIAS BIOL\'{O}GICAS%1
\or%
F\'{I}SICA%2
\or%
MATEM\'{A}TICA%3
\or%
INGENIER\'{I}A ELECTR\'{O}NICA Y TELECOMUNICACIONES%4
\or%
ESTAD\'{I}STICA%5
\else%
\normalfont{\small !`Error: N\'{u}mero no v\'{a}lido!}%
\fi%
}%

\def\professionaltitlename{%
\ifcase \@school%
\relax \or%1
LICENCIADO EN CIENCIAS BIOL\'{O}GICAS%
\or%2
LICENCIADO EN F\'{I}SICA%
\or%3
LICENCIADO EN MATEM\'{A}TICA%
\or%4
INGENIERO ELECTR\'{O}NICO Y DE TELECOMUNICACIONES%

248
\or%5
LICENCIADO EN ESTAD\'{I}STICA%
\else%
\normalfont{\small !`Error: N\'{u}mero no v\'{a}lido!}
\fi%
}%
%Fin

%Elabora la cubierta
\RequirePackage{color}
\definecolor{celeste}{rgb}{0.49,0.847,0.95}
\definecolor{azulfi}{rgb}{0,0.2,0.5}
\definecolor{gris}{rgb}{0.8,0.8,0.8}
\definecolor{azulel}{rgb}{0,0.2,0.7}
\definecolor{azules}{rgb}{0,0,0.3}
\definecolor{blanco}{rgb}{1.0,1.0,1.0}
\definecolor{oro}{rgb}{0.84,0.69,0.16}

\def\professionalcolorname{%
\ifcase \@school%
\relax \or%1
\if@final celeste\else blanco\fi%
\or%2
\if@final azulfi\else blanco\fi%
\or%3
\if@final gris\else blanco\fi%
\or%4
\if@final azulel\else blanco\fi%
\or%5
\if@final azules\else blanco\fi%
\else%
blanco%otherwise
\fi%

249
}%
%Fin

\newcommand\makecover{%
\if@pdftex
\pdfbookmark{Cubierta}{cover}
\fi
\authornumber%
\pagecolor{\professionalcolorname}
\begin{titlepage}
\vspace*{-3em}\hspace*{-4em}
\setlength{\fboxrule}{2pt}
\fcolorbox{oro}{\professionalcolorname}{
\begin{minipage}[c][224mm]{140mm}
\vspace{3ex}
\centering
{\bf\large\color{oro}
UNIVERSIDAD NACIONAL DE PIURA
\par\color{oro}
FACULTAD DE CIENCIAS}
\vskip 1em
{\bf\normalsize\color{oro}
ESCUELA PROFESIONAL DE \schoolname}
\vfill
\includegraphics[scale=0.5]{unp.eps}
\vfill
{\bf\normalsize\color{oro}
\@title}
\vfill
{\ifcase \c@@au%
\relax \or%
\bf\color{oro}\authorname \or%
\bf\color{oro}\authorname%

250
\else%
\normalfont{\small !`Error: La cantidad m\'{a}xima de
ejecutores es 2!}%
\fi}
\vfill
{\bf\normalsize\color{oro}
TESIS PARA OPTAR EL T\'{I}TULO PROFESIONAL
\par\color{oro}
DE \professionaltitlename}
\vfill
{\bf\normalsize\color{oro}
PIURA -- PER\'{U}}%
\vspace{3ex}
\end{minipage}
}
\end{titlepage}
}
%Fin

%Elabora la portada
\newcommand\maketitle{%
\if@pdftex
\pdfbookmark{Portada}{title}
\fi
\authornumber%
\pagecolor{white}
\begin{titlepage}
\vspace*{-2.5em}\hspace*{-4em}
\begin{minipage}[c][224mm]{140mm}
\centering
{\bf\large UNIVERSIDAD NACIONAL DE PIURA
\par FACULTAD DE CIENCIAS}
\vskip 1em

251
{\bf\normalsize ESCUELA PROFESIONAL DE \schoolname}
\vfill
{\bf\normalsize\@title}
\vfill
{\ifcase \c@@au%
\relax \or%
\bf\authorname \or%
\bf\authorname%
\else%
\normalfont{\small !`Error: La cantidad m\'{a}xima de
ejecutores es 2!}%
\fi}
\vfill
{\bf\normalsize TESIS PARA OPTAR EL T\'{I}TULO PROFESIONAL
\par DE \professionaltitlename}
\vfill
{\bf\normalsize\@today}%
\end{minipage}
\end{titlepage}
}
%Fin

%Patrocinador
\newcounter{@pat}

\def\sponsor#1{\gdef\@sponsor{#1}}

\def\sponsornumber{
\begingroup
\setcounter{@pat}{1}%
\def\and{\stepcounter{@pat}}%
\ocultartrue%
\begin{ocultar}

252
\@sponsor
\end{ocultar}
\endgroup}

\def\sponsorsig{
\begingroup
\setcounter{@pat}{1}%
\def\and{\vfill
\rule{6.5cm}{0.25pt}\vskip 0.2em
\stepcounter{@pat}
\textit{Co--Patrocinador}\vskip -3.75em}%
\setbox0=\vbox{\@sponsor}%
\rule{6.5cm}{0.25pt}\vskip 0.2em
\textit{Patrocinador}\vskip -3.75em
\@sponsor%
\endgroup}
%Fin

%Jurado
\newcounter{@jur}

\def\jury#1{\gdef\@jury{#1}}

\def\jurynumber{
\begingroup
\setcounter{@jur}{1}%
\def\and{\stepcounter{@jur}}%
\ocultartrue%
\begin{ocultar}
\@jury
\end{ocultar}
\endgroup}

253
\def\jurysig{
\begingroup
\setcounter{@jur}{1}%
\def\and{\vfill
\rule{6.5cm}{0.25pt}\vskip 0.2em
\stepcounter{@jur}
\ifcase \c@@jur%
\relax\or\relax\or\relax\or\relax%
\or \textit{Secretario Jurado de Tesis}\vskip -3.75em
\or \textit{Vocal Jurado de Tesis}\vskip -3.75em
\fi}%
\setbox0=\vbox{\@jury}%
\rule{6.5cm}{0.25pt}\vskip 0.2em
\textit{Presidente Jurado de Tesis}\vskip -3.75em
\@jury%
\endgroup}
%Fin

%Elabora la pagina de firmas


\newcommand\makesignature{%
\if@pdftex
\pdfbookmark{Firmas}{signature}
\fi
\authornumber%
\sponsornumber%
\jurynumber%
\begin{titlepage}
\vspace*{-2.5em}\hspace*{-4em}
\begin{minipage}[c][221mm]{140mm}
\centering
{\bf\large UNIVERSIDAD NACIONAL DE PIURA
\par FACULTAD DE CIENCIAS}
\vskip 1em

254
{\bf\normalsize ESCUELA PROFESIONAL DE \schoolname}
\vfill\vfill
{\ifcase \c@@au%
\relax \or%
\normalfont\authorsig \or%
\normalfont\authorsig%
\else%
\normalfont{\small !`Error: La cantidad m\'{a}xima de
ejecutores es 2!}%
\fi}
\vfill
{\ifcase \c@@pat%
\relax \or%
\normalfont\sponsorsig \or%
\normalfont\sponsorsig%
\else%
\normalfont{\small !`Error: La cantidad m\'{a}xima de
patrocinadores es 2!}%
\fi}
\vfill
{\ifcase \c@@jur%
\relax \or%
\normalfont{\small !`Error: La cantidad de miembros del
Jurado es 3!} \or%
\normalfont{\small !`Error: La cantidad de miembros del
Jurado es 3!} \or%
\normalfont\jurysig%
\else%
\normalfont{\small !`Error: La cantidad de miembros del
Jurado es 3!}%
\fi}
\end{minipage}
\end{titlepage}

255
}
%Fin

%Dedicatoria
\def\dedication#1{\gdef\@dedication{#1}}

\def\dedicationname{
\begingroup%
\par%
\def\and{\vskip 3cm\leftskip 4cm}%
\leftskip 4cm%
\@dedication\par%
\endgroup}
%Fin

%Elabora la pagina de dedicatoria


\newcommand\makededication{%
\if@pdftex
\pdfbookmark{Dedicatoria}{dedication}
\fi
\begin{titlepage}
\vspace*{0em}
\begin{center}%
{\bf\large DEDICATORIA}
\end{center}
\vfill
\setlength\parindent{0cm}\dedicationname
\vfill\vfill
\end{titlepage}
}
%Fin

%Agradecimiento

256
\def\acknowledgments#1{\gdef\@acknowledgments{#1}}

\def\acknowledgmentsname{
\begingroup%
\def\and{\item}
\begin{itemize}
\item\@acknowledgments
\end{itemize}
\endgroup}

%Elabora la pagina de agradecimiento


\newcommand\makeacknowledgments{%
\if@pdftex
\pdfbookmark{Agradecimientos}{acknowledgments}
\fi
\authornumber%
\begin{titlepage}
\vspace*{0em}
\begin{center}%
{\bf\large AGRADECIMIENTOS}
\vskip 4em
\ifcase \c@@au%
\relax \or%
\hskip -6em El autor desea\; \or%
\hskip -6em Los autores desean\;%
\fi%
expresar su m\'{a}s sincero agradecimiento:
\acknowledgmentsname
\end{center}
\end{titlepage}
}
%Fin

257
%resumen
\def\resumen#1{\gdef\@resumen{#1}}
\def\palabrasclave#1{\gdef\@palabrasclave{#1}}

\newcommand\makeresumen{%
\begin{titlepage}
\chapter{Resumen}
\vskip 1.2em
\setstretch{1}
\@resumen
\section*{Palabras Clave}
\@palabrasclave
\end{titlepage}
}
%Fin

%abstract
\def\abstract#1{\gdef\@abstract{#1}}
\def\keywords#1{\gdef\@keywords{#1}}

\newcommand\makeabstract{%
\begin{titlepage}
\chapter{Abstract}
\vskip 1.2em
\setstretch{1}
\@abstract
\section*{Keywords}
\@keywords
\end{titlepage}
}
%Fin

\newcommand*\chaptermark[1]{}

258
\setcounter{secnumdepth}{2}
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\renewcommand \thechapter {\@arabic\c@chapter}
\renewcommand \thesection {%
\thechapter.\@arabic\c@section}
\renewcommand\thesubsection {\thesection.\@arabic
\c@subsection}
\renewcommand\thesubsubsection{\thesubsection.\@arabic
\c@subsubsection}
\renewcommand\theparagraph {\thesubsubsection.\@arabic
\c@paragraph}
\renewcommand\thesubparagraph {\theparagraph.\@arabic
\c@subparagraph}
\newcommand\@chapapp{\chaptername}
\newcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
\pagenumbering{roman}}
\newcommand\mainmatter{%
\cleardoublepage
\@mainmattertrue
\pagenumbering{arabic}}
\newcommand\backmatter{%
\cleardoublepage
\@mainmatterfalse}

\newcommand\chapter{\cleardoublepage
\thispagestyle{empty}%

259
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\def\@chapter[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\if@chapter
\addcontentsline{toc}{chapter}%
{\protect\numberline{\@Roman\thechapter}{#1}}
\fi
\if@conclusions
\addcontentsline{toc}{chapter}%
{#1}
\fi
\if@annex
\addcontentsline{toc}{chapter}%
{\protect\numberline{Anexo \thechapter}{
\hskip 7ex #1}}
\fi
\if@appendix
\addcontentsline{toc}{chapter}%
{\protect\numberline{Ap\'{e}ndice \thechapter}{
\hskip 11ex #1}}
\fi
\else
\addcontentsline{toc}{chapter}{#1}
\fi
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%

260
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\@makechapterhead{#2}%
\@afterheading}
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \centering \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\if@chapter
\large\bfseries\MakeUppercase%
\@chapapp\space \@Roman\thechapter
\fi
\if@conclusions
\relax
\fi
\if@annex
\large\bfseries\MakeUppercase%
\@chapapp\space \thechapter
\fi
\if@appendix
\large\bfseries\MakeUppercase%
\@chapapp\space \thechapter
\fi
\par\nobreak
\fi
\fi
\interlinepenalty\@M
\setstretch{1.5}
\large \bfseries \MakeUppercase{#1}\par\nobreak
\vskip 40\p@
}}
\newcounter{aux}

261
\def\@schapter#1{\if@pdftex
\stepcounter{aux}%
\pdfbookmark{#1}{\theaux}%
\fi
\@makeschapterhead{\MakeUppercase{#1}}%
\@afterheading}
\def\@makeschapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \centering
\normalfont
\interlinepenalty\@M
\large \bfseries #1\par\nobreak
\vskip 40\p@
}}
\newcommand\section{\@startsection {section}{1}{\z@}%
{-5ex \@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\setstretch{1.5}
\large\bfseries}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.25ex \@plus .2ex}%
{\setstretch{1.5}
\normalsize\bfseries}}
\newcommand\subsubsection{
\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.25ex \@plus .2ex}%
{\setstretch{1.5}
\normalsize\itshape\bfseries}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%

262
{\setstretch{1.5}
\normalsize\itshape\bfseries}}
\newcommand\subparagraph{
\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\setstretch{1.5}
\itshape\normalsize\bfseries}}

\setlength\leftmargini {2.5em}
\leftmargin \leftmargini
\setlength\leftmarginii {2.2em}
\setlength\leftmarginiii {1.87em}
\setlength\leftmarginiv {1.7em}
\setlength\leftmarginv {1em}
\setlength\leftmarginvi {1em}
\setlength \labelsep {.5em}
\setlength \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
\renewcommand\theenumi{\@arabic\c@enumi}
\renewcommand\theenumii{\@alph\c@enumii}
\renewcommand\theenumiii{\@roman\c@enumiii}
\renewcommand\theenumiv{\@Alph\c@enumiv}
\newcommand\labelenumi{\theenumi.}
\newcommand\labelenumii{(\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}

263
\newcommand\labelitemi{\textbullet}
\newcommand\labelitemii{\normalfont\bfseries \textendash}
\newcommand\labelitemiii{\textasteriskcentered}
\newcommand\labelitemiv{\textperiodcentered}
\newenvironment{description}
{\list{}{\labelwidth\z@ \itemindent-\leftmargin
\let\makelabel\descriptionlabel}}
{\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
\normalfont\bfseries #1}
\newenvironment{verse}
{\let\\\@centercr
\list{}{\itemsep \z@
\itemindent -1.5em%
\listparindent\itemindent
\rightmargin \leftmargin
\advance\leftmargin 1.5em}%
\item\relax}
{\endlist}
\newenvironment{quotation}
{\list{}{\listparindent 1.5em%
\itemindent \listparindent
\rightmargin \leftmargin
\parsep \z@ \@plus\p@}%
\item\relax}
{\endlist}
\newenvironment{quote}
{\list{}{\rightmargin\leftmargin}%
\item\relax}
{\endlist}
\newenvironment{titlepage}
{\cleardoublepage
\thispagestyle{empty}}%

264
{\newpage}
\newcommand\conclusions{\par
\@chapterfalse%
\@conclusionstrue}
\newcommand\annex{\par
\@chapterfalse%
\@conclusionsfalse%
\@annextrue%
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{\annexname}%
\gdef\thechapter{\@arabic\c@chapter}}
\newcommand\appendix{\par
\@chapterfalse%
\@conclusionsfalse%
\@annexfalse%
\@appendixtrue%
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{\appendixname}%
\gdef\thechapter{\@Alph\c@chapter}}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
\skip\@mpfootins = \skip\footins
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
\@addtoreset {equation}{chapter}
\renewcommand\theequation
{\ifnum \c@chapter>\z@ \thechapter.\fi
\@arabic\c@equation}

265
\newcounter{figure}[chapter]
\renewcommand \thefigure
{\ifnum \c@chapter>\z@ \thechapter.\fi
\@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename\nobreakspace\thefigure}
\newenvironment{figure}
{\@float{figure}}
{\end@float}
\newenvironment{figure*}
{\@dblfloat{figure}}
{\end@dblfloat}
\newcounter{table}[chapter]
\renewcommand \thetable
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tablename\nobreakspace\thetable}
\def\footnote{\@ifnextchar[{\@xfootnote}{\stepcounter
{\@mpfn}\xdef\@thefnmark{\thempfn}%
\@footnotemark\@footnotetext}}
\newenvironment{table}
{\@float{table}}
{\end@float}
\newenvironment{table*}
{\@dblfloat{table}}
{\end@dblfloat}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}

266
\setlength\belowcaptionskip{10\p@}
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\sbox\@tempboxa{\small\bfseries #1. \normalfont #2}%
\ifdim \wd\@tempboxa >\hsize
\small\bfseries #1. \normalfont #2\par
\else
\global \@minipagefalse
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
\newcommand\@pnumwidth{1.55em}
\newcommand\@tocrmarg{2.55em}
\newcommand\@dotsep{4.5}
\setcounter{tocdepth}{1}
\newcommand\tableofcontents{%
\chapter{\contentsname}
\setstretch{1.5}
\@starttoc{toc}
\setstretch{2}
}
\newcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%

267
\vskip 0.5em\@plus\p@
\setlength\@tempdima{2em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}
\par\penalty\@highpenalty
\endgroup
\fi}
\newcommand*\l@section{\vskip -0.5em\@dottedtocline{1}{
2em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{5.3em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{8.5em}{4.1em}}
\newcommand*\l@paragraph{\@dottedtocline{4}{11.5em}{5em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{13.5em}{6em}}
\newcommand\listoffigures{%
\chapter{\listfigurename}%
\setstretch{1.5}
\@starttoc{lof}%
\setstretch{2}
}
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand\listoftables{%
\chapter{\listtablename}%
\setstretch{1.5}
\@starttoc{lot}%
\setstretch{2}
}
\let\l@table\l@figure
\newdimen\bibindent

268
\setlength\bibindent{1.5em}
\newenvironment{thebibliography}[1]
{\chapter{\bibname}%
\setstretch{1.5}
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist
\setstretch{2}}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@
\@minus3\p@\relax}
\renewcommand\footnoterule{%
\kern10\p@
\hrule\@width0.6\columnwidth
% \kern10.6\p@}
\kern6.0\p@}

269
\@addtoreset{footnote}{chapter}
\newcommand\@makefntext[1]{%
\setstretch{1.25}
\parindent 1em%
\noindent
\hb@xt@1.8em{\hss\@makefnmark}#1}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
\newcommand\bibname{Bibliography}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
\newcommand\chaptername{Chapter}
\newcommand\annexname{Anexo}
\newcommand\appendixname{Appendix}
\def\@today{
PIURA -- PER\'{U}\\
\ifcase\month\or
ENERO\or FEBRERO\or MARZO\or ABRIL\or MAYO\or JUNIO\or
JULIO\or AGOSTO\or SEPTIEMBRE\or OCTUBRE\or NOVIEMBRE\or
DICIEMBRE\fi
\space -- \number\year}
\pagestyle{headings}
\pagenumbering{arabic}

%Paquetes adicionales
\RequirePackage[left=4cm,top=4cm,right=3cm,bottom=3cm]{geometry}
\RequirePackage[spanish,es-noindentfirst,es-nodecimaldot]{babel}
\def\@roman#1{\romannumeral #1}
%fin

270
%Formato para teoremas, definiciones, etc
\RequirePackage{amsthm}
\newtheoremstyle{unp}% name of the style to be used
{10pt}% space above
{10pt}% space below
{}% body font
{0pt}% indent amount
{\bfseries}% theorem head font
{.}% punctuation after theorem head
{.5em}% space after theorem head \newline=linebreak
{\thmnumber{#2}. \thmname{#1}\thmnote{#3}}% theorem head spec
\theoremstyle{unp}
\newtheorem{@ux}{}[section]
\newtheorem{definition}[@ux]{Definici\'{o}n}
\newtheorem{lemma}[@ux]{Lema}
\newtheorem{theorem}[@ux]{Teorema}
\newtheorem{corollary}[@ux]{Corolario}
\newtheorem{comment}[@ux]{Comentario}
\newtheorem{assertion}[@ux]{Aserci\'{o}n}
\newtheorem{proposition}[@ux]{Proposici\'{o}n}
\newtheorem{example}[@ux]{Ejemplo}
%fin

%S\'{i}mbolo lqqd
\newcommand{\dingfamily}{\fontencoding{U}\fontfamily{ding}
\selectfont}
\newcommand{\@chooseSymbol}[1]{{\dingfamily\symbol{#1}}}
\newcommand{\RectangleBold}{\@chooseSymbol{'166}}
\renewcommand{\qedsymbol}{\RectangleBold}
%fin

%Funciones matem\'{a}ticas especiales


\newcommand\abs[1]{\lvert#1\rvert}

271
\newcommand\norm[1]{\lVert#1\rVert}
%fin

\if@pdftex
\RequirePackage[pdftex]{graphicx}
\RequirePackage{epstopdf}
\RequirePackage[
pdftex,
pdfauthor={Prof. Robert Ipanaque},
pdftitle={Tesis de Licenciatura},
pdfsubject={Para alumnos egresantes
del nivel Pre-grado de la FC-UNP},
pdfkeywords={fcunp.cls},
bookmarksnumbered]{hyperrefn}
\else
\RequirePackage{graphicx}
\fi

%%
%% End of file `fcunp.cls'.

272
Conclusiones

Este artículo presenta la clase Fc Unp que permite redactar la tesis de

pregrado de cualquier estudiante de la FC-UNP, ajustándose al formato

exigido por el Reglamento de Tesis de la mencionada Facultad. Los coman-

dos implementados en dicha clase permiten que el estudiante se concentre

únicamente en el contenido de la tesis sin tener que invertir tiempo en darle

formato al mismo. Además, la clase Fc Unp permite obtener una archivo


AT X, el cual constituye un requisito adicional
PDF producido por PDFL E

que exige la FC-UNP.

273
Recomendaciones

Se recomienda divulgar el uso de la plantilla Fc Unp en la Facultad de

Ciencias para que los alumnos egresantes digiten sus respectivos trabajos

de Tesis de este modo se obtiene uniformidad en los trabajos presentados y

AT X siendo esto último esencial para


se familiariza al alumno en el uso de L E

cuando los alumnos decidan cursan estudios de postgrado en la capital o

en el extranjero.

AT X para digitar la
Adicionalmente, se sugiere elaborar una clase en L E

tesis de grado.

274
Bibliografía

[1] Aranda, E. CURSO DE LATEX. Departamento de Matemáti-

cas, E.T.S. Ingenieros Industriales, Universidad de Castilla, La

Mancha. http://www.wiphala.net/courses/tools/latex/KAS_
LATEX/2008-I (2008).

[2] Cubides, C., Rojas, A. y Pardo, C. CURSO BÁSICO DE LATEX.

http://www.emis.de/journals/RCE/IntroLatex (2006).

[3] Griths, D and Higham, D. LEARNING LATEX. The Society for

Industrial and Applied Mathematics (1997).

[4] Gurari, E. WRITING WITH TEX. McGraw-Hill, Inc. (1994).

[5] Knuth, D. THE TEXBOOK. Adisson-Wesley Publishing Company

(1991).

[6] Lamport, L. LATEX. A DOCUMENT PREPARATION SYSTEM.

Addison-Wesley Publishing Company (1994).

[7] Molina Luis M. LTEX: PROCESAMIENTO DE TEXTOS CIENTÍ-

FICOS EN ALTA CALIDAD. Departamento de Física Teórica, Ató-

http://metodos.fam.cie.
mica y Óptica. Facultad de Ciencias.

uva.es/~latex/apuntes/apuntes.html (2011).

[8] Mora, W. y Borbón, A. EDICIÓN DE TEXTOS CIENTÍ-

FICOS LATEX. Escuela de Matemática Instituto Tecnológi-

http://www.cidse.itcr.ac.cr/revistamate/
co de Costa Rica.

HERRAmInternet/Latex/wmlatexrevista (2008).
275
[9] Mori, L. WRITING A THESIS WITH LATEX. The PracTex Jour-

nal (2008).

[10] Rostamian, Rouben. A BEAMER QUICKSTART. http://www.


math.umbc.edu/~rouben/beamer/ (2004).

[11] Shultis, J. LATEX NOTES. Prentice Hall, New Jersey (1994).

276

También podría gustarte