Sei sulla pagina 1di 214

Elaboracin de una clase en

para digitar la tesis de pre-grado


en la Facultad de Ciencias

R. Ipanaqu, G. Gonzlez y G. Crespo

Instituto de Investigacin y Promocin para el desarrollo de la


Universidad Nacional de Piura http://www.unp.edu.pe/institutos/iipd

ELABORACIN DE UNA CLASE EN

PARA DIGITAR LA TESIS DE PRE-GRADO


EN LA FACULTAD DE CIENCIAS

R. IPANAQU
G. GONZLEZ
G. CRESPO
FACULTAD DE CIENCIAS
UNIVERSIDAD NACIONAL DE PIURA
PIURA, PER

Ttulo:

AT X
Elaboracin de una clase en L
E

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. GONZLEZ CREOLLO

gmogonzalez@gmail.com
http://www.unp.edu.pe/pers/ggonzalez
GLORIA S. CRESPO GUERRERO

gloriasol48@hotmail.com

INSTITUTO DE INVESTIGACIN Y PROMOCIN PARA EL DESARROLLO (iipd)


Junio, 2011

UNIVERSIDAD NACIONAL DE PIURA


Urb. Miraores s/n, Castilla, Piura, PER

PRLOGO

AT X, sino que constituye la


Este libro no pretende ser un manual de L
E
presentacin 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 digitacin de la Tesis de pregrado.


de L
E
En el primer captulo se dan los lineamientos elementales en el uso de
AT X y que son ampliamente utilizadas para elabolas clases estndar de L
E
rar diversos trabajos cientcos, a saber: article, report, book, letter
y

slides.

Adems describe los comandos bsicos, que se utilizan en cual-

quiera de dichas clases, y que sirven para dar formato al texto, insertar
y editar frmulas matemticas, manipulacin de listas, insertar grcos,
insertar tablas, etc.
Una vez que el lector se ha familiarizado con las clases y comandos
mencionados, en el segundo captulo, se hace una breve descripcin de

AT X con la nalidad que el lector


los elementos de la programacin en L
E
aprecie la potencia del mismo.
Finalmente, en el tercer captulo, se describen los comandos de la clase creada, a la que se le ha llamado

Fc Unp , mostrando con un ejemplo

especco los resultados que se obtienen en forma automatizada tanto en


formato como en el color del empaste (esto permite que el estudiante obtenga un archivo PDF de calidad profesional, el cual incluye hipervnculos,
referencias y marcadores, todos stos interactivos).

R. Ipanaqu
G. Gonzlez
G. Crespo
Piura, Per

CONTENIDO

Prlogo

Contenido
Captulo I:Introduccin a LATEX
Introduccin a la edicin de textos con LATEX
Instalacin de TEX/LATEX

ii
1

Prueba de la correcta instalacin de TEX/LATEX


Instrucciones bsicas de LATEX
Estructura de los documentos LATEX
Clases de documentos bsicos
Paquetes
El paquete babel
El paquete inputenc
El paquete geometry
Formato de pgina
Edicin de texto
Matemtica
Listas
Inclusin de grcos
Tablas
Referencias cruzadas
Notas al pie y al margen
Insercin de texto plano
Bibliografa
El programa BibTex

1
9
17
25
28
29
52
57
57
58
58
59
67
89
97
100
108
112
114
115
117

iii

Captulo II:Programacin con LATEX


Creacin de comandos y entornos
Entornos
Compilacin por partes
Conceptos bsicos sobre contadores y longitudes
Programacin con TEX
Manejo de cajas en TEX
Repeticin de objetos
Sistematizando tareas
Condicionales y bucles
Captulo III:La clase FcUnp

122
124
126
127
138
143
151
153
154
165

Introduccin
Cmo invocar la clase FcUnp
Comandos implementados
Paquetes incorporados
Un ejemplo especco
Obtencin de la clase FcUnp
Cdigo de la clase FcUnp
Conclusiones
Recomendaciones
Bibliografa

165
165
166
168
169
171
180
204
205
206

122

iv

CAPTULO I

INTRODUCCIN A LTEX
A

1 Introduccin a la edicin de textos con LATEX


1.1 Conceptos referentes a TEX/LATEX

Qu es TEX?
1

TEX es un sistema de composicin de textos de alta calidad que fue creado


por Donald E. Knuth a nales de la dcada de 1970; est dirigido en particular a aqullos textos que contienen una gran cantidad de expresiones
matemticas. TEX en s es un procesador de macros, con una alta capacidad de programacin, 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 suministr una serie de macros para TEX a las que se denomin plain TEX.
Estas macros son el conjunto mnimo 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.

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
1 El

nombre TEX representa el prejo (tau psilon chi), que signica arte.

AT X proporciona
ms 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 presentacin. 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 Matemtica (AMS) entre
1983 y 1985. Est basado en plain TEX pero proporciona ms medios para
producir frmulas matemticas de aspecto profesional con menor esfuerzo
por parte de los autores, con un gran cuidado en aspectos como el tamao
y la posicin de las frmulas. Entre los aspectos tratados se encuentran las

ecuaciones de ms de una lnea, la numeracin de ecuaciones, las matrices,


los acentos dobles, sub y super ndices en varios niveles, as como otras
AT X la AMS desarroll
cosas. Segn fue aumentando la popularidad de L
E
A
AMS-L TEX que consiste en una coleccin de clases y paquetes para LATEX
que ofrece a los autores la funcionalidad de

AMS-TEX.

Clases de usuarios que utilizan TEXLATEX en la creacin de sus documentos

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


TEX- perto Persona familiarizada con los comandos bsicos de TEX capaz de programar rutinas o macros TEX.

TEX- ncrata

Persona que ha asimilado la losofa TEX y que usa reguAT X pero que no conoce o no tiene inters en el
larmente TEX o L
E
funcionamiento interno del lenguaje TEX.

1.2 Qu ventajas tiene TEX/LATEX?

Funciona, es estable y multiplataforma


El formato de los archivos es mucho ms estable que en otros procesadores,
cualquier cambio es realizado localmente y no repercute en efectos colaterales, existen implementaciones para distintas plataformas y en todas 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 edicin de ecuaciones


AT X es ampliamente utilizaEsta es una razn muy importante por la que L
E
do en entornos cientcos. Muchas revistas aceptan o exigen los documenAT X. Este procesador ajusta los tamaos de parntesis,
tos escritos en L
E
integrales, subndices y superndices, alinea los elementos de las matrices,
construye cajas, etc.

LATEX permite redactar fcilmente documentos estructurados


A travs de distintas clases de documento y de su conjunto de macros,

AT X posibilita escribir textos dividindolos en captulos, secciones, subL


E
secciones, controlando en todo momento la numeracin y las referencias
cruzadas. Construye ndices de contenidos, tablas o guras. Ajusta los tamaos y tipos de letras segn la parte del documento en que se hallen.

Facilidad en la construccin de macros y rdenes


A poco de comenzar a usar este procesador, el usuario se encuentra deniendo o redeniendo rdenes para que stas se ajusten a sus preferencias
personales. Por ejemplo, es posible que una determinada expresin aparezca repetidas veces en el texto. Nada ms fcil que denir una orden que
reemplace a todo un bloque. O bien, es posible que no guste la forma en

AT X numera las pginas, una redenicin al principio del documento


que L
E
permite cambiar esto.

Se escribe en ASCII
Esto, que al principio puede parecer un inconveniente (ya que implica
teclear mucho ms) se torna en ventaja al cabo del tiempo. Por un lado
permite incrementar la velocidad de escritura (pues no hay que andar
utilizando ratn o mens), por otro facilita el uso de cualquier editor de
texto (no contiene caracteres de control) y permite su transmisin por
correo electrnico (puede escribirse en ASCII de 7 bits). Esto hace que

AT X enviados
muchas revistas cientcas admitan artculos 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 dinero
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 restriccin. La
nica restriccin impuesta por Knuth es que debe dar el mismo resultado en
todas las implementaciones, para garantizar la absoluta portabilidad de los
documentos escritos con TEX. Algunas empresas ofrecen implementaciones
AT X con elementos propios.
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 aprenprimer da 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 iniciacin consiste principalmente en aprenderse las rdenes esenciales. La contrapartida de este esfuerzo es que cuando se trabaja

AT X y se compara el resultado con lo obtenido con otros procesacon L


E
dores, la salida de stos ltimos parece poco seria en cuanto se reere a
las frmulas matemticas. 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 compilacin, esto suele ser frustrante, aparte de conllevar una prdida de tiempo.

AT X no est
Con el tiempo, los errores disminuyen. De todas formas, L
E
especialmente dirigido a los aspectos puramente estticos de cada pgina
en concreto, sino a los estructurales del documento. Si uno est interesado

AT X no es el procesador adecuado. ste basa


estrictamente en la esttica, L
E
la belleza de los documentos creados ms en la claridad, en el buen criterio y en una esttica agradable, que en la posibilidad de hacer fcilmente
diseos rebuscados para cada pgina.

No permite introducir imgenes


Esta acusacin habitual no es en absoluto cierta. Simplemente hay que ser
conscientes de los medios de visualizacin e impresin de que se dispone y
obrar en consecuencia. Lo que no debe olvidarse nunca es que tanto TEX

AT X estn pensados como lenguajes de composicin de documentos,


como L
E
no de autoedicin.

No tiene variedad de tipos (fuentes)


Es cierto que los tipos CM (Computer Modern) originalmente desarrollados por Knuth son limitados en cantidad y variedad, por lo que a medida

AT X se difunda, han aumentado las demandas de ms tipos para


que L
E
usos diversos. Aunque el crecimiento es todava lento, existe una gran cantidad 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.

1.4 Elementos que intervienen al procesar un documento

El documento fuente: Cmo creo un documento con TEX/LaTeX?


AT X es realmente un lenguaje de programacin
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 cmo debe ser procesado ste.
Este paso se realiza con un editor de texto, o con un ambiente de progra-

AT X.
macin especializado totalmente integrado para su uso con TEX/L
E

Cmo proceso, veo e imprimo un documento con TEX/LaTeX?


Dado

un

fuente
se

documento

doc.tex,

procesa

doc.dvi

ste

mediante

TEX si se han utilizado las rdenes de

doc.tex

doc.aux

plain TEX o LATEX si


se han utilizado las r-

AT X (Fig.
denes de L
E
1.1).

Se

corrigen

doc.log

los

posibles errores de sintaxis y se repite el proceso hasta que stos se


han eliminado.

Fig. 1.1

Qu es un archivo

*.aux?

AT X usa para el conteo


Documento auxiliar con informacin interna que L
E
y enumeracin automtica de secciones, ecuaciones, referencias bibliogrcas, etc.

Qu es un archivo

*.log?

AT X con todos los detalles de la compiEs el cuaderno de bitcora de L


E
lacin o del procesamiento, incluyendo los mensajes de error.

Qu es un archivo

*.dvi?

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

AT X. Su forma no depende del


procesar el texto fuente a travs de TEX/L
E
dispositivo que se vaya a utilizar para verlo/imprimirlo. Un archivo DVI
est pensado para ser ledo por un conversor que produzca una salida adecuada para una determinada impresora, o para un determinado visualizador en la pantalla del ordenador. Los archivos DVI utilizan una codicacin
interna de TEX de forma que un documento fuente debe producir exactamente el mismo archivo DVI, con independencia de la implementacin 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 especcos 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 diseado para visualizar documentos tal y como se han
diseado. Permite usar colores, grcos, 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
programacin. En relacin con TEX PDF es un formato que sustituye al

DVI. Los visualizadores de PDF ms recomendables son Acrobat Reader


y Ghostview.

Qu es el postscript y el postscript encapsulado?


PostScript (PS) es un lenguaje de programacin para describir pginas.
Como lenguaje estructurado permite la programacin (tiene estructuras
de control y bucles). Fue desarrollado por Adobe. Existen varios intrpretes que permiten la visualizacin de este formato, Ghostscript por ejemplo.
El formato PS se basa en describir cada pgina desde un origen de coordenadas que se sita en la esquina inferior izquierda de la pgina. PS encapsulado (EPS) es el formato estndar para importar y exportar archivos
PS en cualquier tipo de entornos. Usualmente es un archivo que contiene
una sola pgina que describe una gura. El archivo EPS est especialmente 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

Fig. 1.2

1.5 Fuente de TEX/LATEX y otros programas relacionados

Distribuciones TEX/LATEX

En principio se podra coger todo el sistema elemento a elemento y ponerlo


todo en comn. Sin embargo, para que esto funcione correctamente, el
tiempo requerido y la complejidad del trabajo son grandes. Por esta razn
algunas personas o empresas ya lo han hecho y lo ofrecen preparado en lo
que se denominan distribuciones. Se entiende por distribucin un conjunto

AT X junto con otras utilidades


de archivos binarios y paquetes de macros L
E
adicionales, hay distribuciones de libre distribucin GNU, Shareware (se

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


pagar el registro) y otras de distribucin comercial.
Existen versiones para:
Atari, Amiga, UNIX, VMS, Os2, Windows NT, Mac y MS-DOS.
Las ms comunes distribuciones libres o shareware son:
Unix

TeTEX
teTEX NTEX
Macintosh
OzTEX
Linux

DOS/OS2
Win32

emTEX gTEX emTEX-TDS


2
MikTEX fpTEX.

En tanto, que las ms comunes distribuciones comerciales para windows


son:
ScienticWord, ScienticWorkPlace y ScienticNotebook, los cuales
ofrecen 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
DOS/OS2
Win32
Linux

GNU emacs
TEXshell
3
4
5
WinEdt , Winshell , TEXMAKER , PCTEX32
kate, kile.

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 ser-

AT X para prcticamente
vidores de CTAN contiene implementaciones de L
E
AT X
todos los sistemas operativos, as como los paquetes de macros TEX y L
E

y otros programas que pueden ser tiles. El software que all se encuentra
es GNU o shareware.

2 Fabrice Popineau
3 Shareware
4 GNU
5 GNU

es una versin de teTEX para Windows

Los servidores ms 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
Hispanoamrica. La pgina Web ocial del grupo es

http://www.cervantex.org/

2 Instalacin de TEX/LATEX
Una distribucin gratuita para Microsoft Windows, desarrollada por Chris-

MiKTEX

tian Schenk es
. Las caractersticas ms apreciables de MiKTEX
son su habilidad de actualizarse por s mismo descargando nuevas versiones de componentes y paquetes instalados previamente, y su fcil proceso
de instalacin. La versin actual de MiKTEX es 2.9 y est disponible en
su pgina ocial (ver Fig. 1.3)

http://miktex.org
Despus de descargar MiKTEX se procede a su instalacin haciendo
doble clic sobre el respectivo icono

tras lo que aparece un

cuadro como el de la gura 1.4. A continuacin se ejecutan los siguientes


pasos:
1. Activar la casilla de condiciones de instalacin del citado cuadro tal
como se muestra en la gura 1.5.
2. Pulsar el botn

<Siguiente>

que se aprecia en la gura 1.6.

3. Pulsar el botn

<Siguiente>

que se aprecia en la gura 1.7.

4. Pulsar el botn

<Siguiente>

que se aprecia en la gura 1.8.

5. Pulsar el botn

<Start>

que se aprecia en la gura 1.9.

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


7. Pulsar el botn

<Siguiente>

que se aprecia en la gura 1.11.

10

Fig. 1.3

Porcin de la pgina web ocial de MiKTEX.

Fig. 1.4

11

Fig. 1.5

Fig. 1.6

Fig. 1.7

12

Fig. 1.8

Fig. 1.9

Fig. 1.10

13

Fig. 1.11

Fig. 1.12

8. Finalizar el proceso pulsando el botn

<Close>

que se aprecia en la

gura 1.12.

MAKER

Seguidamente instalamos el editor libre TEX


especialmente diAT X.
seado para hacer ms fcil y cmodo el trabajo con L
E

MAKER (ver Fig. 1.13) es

La pgina web ocial de TEX

http://www.xm1math.net/texmaker

MAKER se procede a su instalacin haciendo

Despus de descargar TEX

doble clic sobre el respectivo icono

tras lo que aparece un cuadro

como el de la gura 1.14. A continuacin se ejecutan los siguientes pasos:


9. Pulsar el botn

<I Agree>

que se aprecia en la gura 1.14.

14

Fig. 1.13

MAKER .

Porcin de la pgina web ocial de TEX

Fig. 1.14

Fig. 1.15

15

Fig. 1.16

Fig. 1.17

<Install>

10. Pulsar el botn

que se aprecia en la gura 1.15.

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


12. Finalizar el proceso pulsando el botn

<Close>

que se aprecia en la

gura 1.17.

MAKER

13. Acceder a TEX


directo
14. Elegir

haciendo doble clic en el icono de acceso

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

<Congurar Texmaker>

de la opcin

<Opciones>

de la barra

de Men (ver Fig. 1.19).


15. Seleccionar

8859-1

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

(para el reconocimiento de caracteres no pertenecientes al

Codicacin del editor. Elegir, adems,


ES_es.dic (para revisin ortogrca en espaol) en la
opcin Diccionario. Aqu tambin es posible congurar: tipo y tamacdigo ASCII) en la opcin

el diccionario

o de letra, colores para entorno matemtico, comandos y palabras


clave, as como los atajos (ver Fig. 1.20).

16

Fig. 1.18

Fig. 1.19

17

Fig. 1.20

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


botn

<Aceptar>

que se ubica en la parte inferior (ver Fig. 1.20).

Despus de ejecutar los diecisis pasos antes descritos ya podemos elaborar nuestro primer documento en TEX (TeXworks de MiKTEX) o en
AT X (T X
L
), segn sea el caso.
E
E

MAKER

No obstante, para poder visualizar, en forma independiente, cualquier


documento que elaboremos es preciso asegurarnos de tener instalado en el
ordenador algn visor de archivos pdf. Los ms comunes en nuestro medio
son el Acrobat Reader y el Foxit Reader (ambos pueden descargarse en
forma gratuita).

3 Prueba de la correcta instalacin de TEX/LATEX

MAKER realizaremos los siguientes pa-

Despus de haber accedido a TEX


sos:
1. Pulsar el botn

<Nuevo>

que se aprecia en la gura 1.21. Despus

de esto aparecer automticamente una hoja en blanco como la


que muestra en la gura 1.22.
2. Elegir

<Asistente para nuevo documento> de la opcin <Asistentes>

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

18

Fig. 1.21

Fig. 1.22

19

Fig. 1.23

cuadro de dilogo como el de la gura 1.24.


3. Presionar el botn

<Aceptar>

ubicado en la parte inferior (ver Fig.

1.25). Despus de esto, la hoja en blanco ser llenada automticamente con el cdigo mostrado en la gura 1.26.

Esto es una prueba. en el campo ubicado


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

4. Escribir el texto:

entre

5. Crear una nueva carpeta y guardar en sta el archivo, asignndole


un nombre. En nuestro caso convendremos en asignarle el nombre

ejemplo (ver gs. 1.28 y 1.29).


6. Vericar que est activa la ventana de mensajes presionando el botn

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

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


7. Presionar la tecla

<F6>

y esperar a que se compile el documento

y se genere el respectivo archivo pdf. Al nalizar la compilacin debe aparecer un mensaje, como el que se muestra en la gura 1.32,
indicando que el proceso ha terminado exitosamente.
8. Presionar la tecla

<F7>

para poder ver el archivo pdf con el visor

MAKER (ver g. 1.33).

de archivos pdf de TEX

20

Fig. 1.24

Fig. 1.25

21

Fig. 1.26

Fig. 1.27

22

Fig. 1.28

Fig. 1.29

23

Fig. 1.30

Fig. 1.31

24

Fig. 1.32

Fig. 1.33

25

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
<Ctrl>+<S>).

rpida de hacer esto es presionando la combinacin

Tngase presente que en la carpeta donde se ha almacenado el archivo, al que se convino llamar ejemplo, se habrn creado cuatro archivos.
Especcamente: ejemplo.tex, ejemplo.txt, ejemplo.aux y ejemplo.pdf. ste
ltimo archivo constituye nuestro documento propiamente dicho.
Si por alguna razn es abierto el archivo pdf (en este caso ejemplo.pdf )
con el Acrobat Reader, ste debe cerrarse antes de que se efecte cualquier
cambio en el archivo tex (en este caso ejemplo.tex ), pues de lo contrario no

MAKER ; es decir desMAKER , aparecer

permitir realizar ninguna actualizacin desde TEX


, en la respectiva hoja de TEX

pus de presionar

<F6>

un mensaje de error en el cuadro de mensajes (ver g. 1.31).

4 Instrucciones bsicas 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


E
7 Luego de los comandos

son sensibles a maysculas y minsculas


simples los espacios son ignorados, por esta razn es importante forzar a que aparezcan stos mediante cualquiera de las siguientes secuencias:
\<comando>\ , {\<comando>} o \<comando>{}.

26

4.2 Declaraciones globales (bloques) y entornos

Declaraciones globales (bloques)


Son aquella declaraciones que limitan su alcance al bloque de texto contenido 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 lnea

Comentarios
Todo texto que se encuentre a la derecha del smbolo % 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 lnea


AT X tiene
En una secuencia de espacios en blanco o de saltos de lnea, L
E
en cuenta solo el primer espacio en blanco o el primer salto de lnea.

4.4 Smbolos especiales

Smbolos especiales
Los siguientes smbolos (entre otros) no se pueden obtener directamente,
es necesario especicarlos mediante comandos:

$ %

&

27

Tabla de smbolos especiales ms comunes


Smbolo

Comando

Smbolo

Comando

\textbackslash

&

\&

\{

\}

\_

\$

\%

\#

4.5 Tilde, diresis, circunejo y virgulilla


AT X procesa archivos escritos con ASCII 7, los smbolos con
Dado que L
E
tilde, diresis, circunejo o virgulilla no se pueden obtener directamente,
para esto existen unos comandos especiales, como por ejemplo: para la 
puede usarse

\'a

\{'a}.

Smbolos con tilde, diresis, circunejo o virgulilla


Smbolo

Comando

Smbolo

Comando

\'a

\{'a}

\"a

\"{a}

\'e

\'{e}

\^a

\^{a}

\'i

\{'i}

\~n

\~{n}

\'o

\{'o}

\~N

\~{N}

\'u

\{'u}

Una herramienta importante para los latinos


Los comandos mostrados en la tabla previa caen en desuso si se utiliza una
herramienta especialmente diseada para latinos (ver sec. 9), la cual debe
invocarse desde nuestro archivo tex mediante

\usepackage[latin1]{inputenc}

28

5 Estructura de los documentos LATEX


5.1 Clases de documentos bsicos

article
book

Estilo artculo, documentos cortos.


Estilo libro, documentos ms largos que contienen captulos.

report
letter
slides

Estilo reporte o informe tcnico.


Estilo carta.
Estilo diapositivas.

5.2 Estructura bsica de un documento


La estructura bsica de un documento ser de esta forma:

\documentclass[(
<opciones >]{<estilo >}
< ttulo >, < autor >, < fecha >
Prembulo
< 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 cdigo es de la clase
puede apreciarse en la gura 1.34.

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

article

29

Fig. 1.34

6 Clases de documentos bsicos


6.1 La clase article
\documentclass[(
<opciones >]{article}
< declaraciones: paquetes, comandos >
Prembulo
< ttulo >, < autor >, < fecha >

\begin{document}

\maketitle

\begin{abstract}...\end{abstract}
Documento
\section{...}

\subsection{...}

\subsubsection{...}

\end{document}

30

Comandos importantes en el estilo article


\maketitle

Hace que se produzcan las lneas para el ttulo, autor y fecha. Debe ubicarse despus de

\begin{document}, si se omite, no se generan dichos campos.

\date

Se imprime la fecha vigente del computador, o el


valor que se ingrese al campo obligatorio, si se
desea que no aparezca se debe escribir

\thanks{...}

Se puede utilizar en

\date{ }.

\title, \author, \date, pro-

duce notas al pie de pgina con la informacin del


autor.

\begin{abstract}

. . . \end{abstract}

\section{...},
\subsection{...},

En este entorno se coloca el resumen del artculo


y debe ubicarse despus de

\maketitle.

Secciones, subsecciones, etc., las cuales son numeradas automticamente.

etc.

Ejemplo de un documento escrito en el estilo article


El documento que se obtiene con el siguiente cdigo puede apreciarse en
la gura 1.35.

\documentclass{article}
\usepackage[latin1]{inputenc}
\title{La clase article en \LaTeX}
\author{A. U. Tor \thanks{Catedrtico, UNP,
autor@unp.edu.pe}}
\date{}
\begin{document}
\maketitle
\begin{abstract}
En este documento se exhibirn las caractersticas
ms importantes de un artculo escrito en \LaTeX.
\end{abstract}

31

\section{Artculo en \LaTeX}
Los artculos son la clase de documentos \LaTeX\ ms
ampliamente utilizados, dada la sencillez en su creacin.
\subsection{Estructura de un artculo}
Este tipo de documento se puede dividir en dos partes, los
campos de identificacin: ttulo, autor y fecha. Y
el cuerpo del documento, en el cual el texto pertenece a
una de las siguientes unidades divisionales: resumen,
secciones, subsecciones, pargrafos, subpargrafos,
etc.
\end{document}

6.2 La clase book


\documentclass[(
<opciones >]{book}
< declaraciones: paquetes, comandos >
Prembulo
< ttulo >, < autor >, < fecha >
\begin{document}

\maketitle

\frontmatter

\mainmatter

\chapter{...}
Documento

\section{...}

\subsection{...}

\appendix

\backmatter
\end{document}

32

Fig. 1.35

Primera pgina generada con la clase

article.

33

Comandos importantes en el estilo book


\maketitle

Fuerza a que se produzcan las lneas para el ttulo,


autor y fecha. Al omitirlo no se generar la pgina
del ttulo.

\frontmatter

Apertura del libro, se presenta todo aquel contenido que no tenga que ver con el tema central tratado en el libro: prlogo, agradecimientos, tabla
de contenido, derechos de autor, ndice de guras,
ndice de tablas, etc. La numeracin se realiza utilizando numeracin romana.

\mainmatter

Contiene la parte central del documento en la que


se desarrolla el tema tratado en el libro. Aqu tambin se ubican los apndices, mediante el comando

\appendix,

los cuales, despus de ingresarse

como captulos, son automticamente numerados


con las letras maysculas A, B, C, . . .

\chapter{...},
\section{...},
etc.

\backmatter

Captulos, secciones, etc., las cuales corresponden


a la parte central y son numeradas automticamente.
Es el cierre del documento, contiene el ndice alfabtico, bibliografa, conclusiones, reconocimientos, informacin editorial, etc. Los captulos no
son numerados.

Ejemplo de un documento escrito en el estilo book


El documento que se obtiene con el siguiente cdigo puede apreciarse en
las guras 1.36, 1.37, 1.38, 1.39 y 1.40.

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

34

\maketitle
\frontmatter
\chapter{Prlogo}
La clase book facilita la digitacin de libros de alta
calidad.
\tableofcontents
\mainmatter
\chapter{Libro en \LaTeX}
Los libros son la clase de documentos \LaTeX\ ms
completa.
\section{Estructura de un libro}
Este tipo de documento se puede dividir en tres partes,
la apertura: prlogo, 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: captulos
secciones, subsecciones, etc. Y el cierre del documento
que contiene la bibliografa, conclusiones,
recomendaciones, etc.
\backmatter
\begin{thebibliography}{CM}
\bibitem{Ar}
Aranda, E.
CURSO DE LATEX.
Departamento de Matemticas, E.T.S. Ingenieros
Industriales, Universidad de Castilla, La Mancha.
(2008).
\end{thebibliography}
\end{document}

35

6.3 La clase report


La clase

report

book, aunque imprime por una sola


abstract para generar el resumen en

es similar a la clase

cara y tiene disponible el entorno


una pgina independiente.

\documentclass[(
<opciones >]{report}
< declaraciones: paquetes, comandos >
Prembulo
< ttulo >, < autor >, < fecha >
\begin{document}

\maketitle

\chapter{...}
Documento
\section{...}

\subsection{...}

\appendix
\end{document}

Comandos importantes en el estilo report


\maketitle

Fuerza a que se produzcan las lneas para el ttulo,


autor y fecha. Al omitirlo no se generar la pgina
del ttulo.

\chapter{...},
\section{...},
etc.

Captulos, secciones, etc., las cuales corresponden


a la parte central y son numeradas automticamente.

Ejemplo de un documento escrito en el estilo report


El documento que se obtiene con el siguiente cdigo puede apreciarse en
las guras 1.41, 1.42, 1.43, 1.44, 1.45 y 1.46.

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

36

Fig. 1.36

Portada generada con la clase

book.

37

Fig. 1.37

Pgina del prlogo generada con la clase

book.

38

Fig. 1.38

book. El
babel (ver

Pgina de la tabla de contenidos generada con la clase

inconveniente del ttulo en ingls se supera usando el paquete


seccin 8).

39

Fig. 1.39

8)

book. El inconbabel (ver seccin

Pgina del primer captulo generada con la clase

veniente del ttulo en ingls se supera usando el paquete

40

Fig. 1.40

8)

book. El inconvebabel (ver seccin

Pgina de la bibliografa generada con la clase

niente del ttulo en ingls se supera usando el paquete

41

\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 pgina independiente.
\end{abstract}
\chapter*{Prlogo} %(El * evita la palabra Chapter)
La clase report facilita la digitacin de reportes de
alta calidad.
\tableofcontents
\chapter{Reporte en \LaTeX}
Los reportes son la clase de documentos \LaTeX\ ms
completa.
\section{Estructura de un reporte}
Este tipo de documento se puede dividir en tres partes,
la apertura: prlogo, 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: captulos
secciones, subsecciones, etc.
\begin{thebibliography}{CM}
\bibitem{Ar}
Aranda, E.
CURSO DE LATEX.
Departamento de Matem\'{a}ticas, E.T.S. Ingenieros
Industriales, Universidad de Castilla, La Mancha.
(2008).

42

\end{thebibliography}
\end{document}

6.4 La clase letter


La clase

letter

sirve para escribir cartas.

\documentclass{letter}
\begin{document}

\address{direccin del remitente}


Prembulo
\signature{nombre y rma del remitente}

\date{fecha deseada}(por defecto \today)


\begin{letter}

\opening{apertura, saludo}

{Contenido}

\closing{cierre, despedida}
Carta
\cc{copias a: }(opcional)

\encl{material adjunto}(opcional)

\ps{nota o dato posterior}(opcional)


\end{letter}
\end{document}

Ejemplo de un documento escrito en el estilo letter


El documento que se obtiene con el siguiente cdigo puede apreciarse en
la gura 1.47.

\documentclass{letter}
\usepackage[latin1]{inputenc}
\begin{document}
\address{
Revista Universalia \\

43

Fig. 1.41

Portada generada con la clase

report

44

Fig. 1.42

Pgina del resumen generada con la clase

report. El inconvebabel (ver seccin

niente del ttulo en ingls se supera usando el paquete


8)

45

Fig. 1.43

Pgina del prlogo generada con la clase

report.

46

Fig. 1.44

Pgina de la tabla de contenidos generada con la clase

report.
babel

El inconveniente del ttulo en ingls se supera usando el paquete


(ver seccin 8)

47

Fig. 1.45

Pgina del primer captulo generada con la clase

inconveniente del ttulo en ingls se supera usando el paquete


seccin 8)

report. El
babel (ver

48

Fig. 1.46

Pgina de la bibliografa generada con la clase

report. El inbabel (ver

conveniente del ttulo en ingls se supera usando el paquete


seccin 8)

49

Universidad Nacional de Piura}


\signature{
E. Ditor \\
Editor}
\begin{letter}{
Dr. Donald Knuth \\
Departamento de Ciencias de la Computacin \\
Universidad de Stanford \\
EEUU}
\opening{Estimado seor:}
El Comit\'{e} Editor de la Revista Universalia de
la UNP, teniendo en cuenta su experiencia
y su conocimiento sobre el tema, le solicita
muy comedidamente hacer una evaluacin del
artculo titulado ``Anlisis de la taza del
aprendizaje de \LaTeX\ en Piura''.
Para cumplir con el cronograma del n\'{u}mero de
ste ao, le solicito comedidamente entregar la
evaluacin antes de finalizar el ao en curso.
\closing{Atentamente,}
\cc{
Departamento de Publicaciones, Universidad Nacional de
Piura.}
\encl{
Artculo para arbitraje titulado:
``Anlisis de la taza del aprendizaje
de \LaTeX\ en Piura'' en formato pdf.}
\ps{
P.D. En el documento enviado se han
eliminado los datos de los autores y las
instituciones a las que pertenecen.}
\end{letter}
\end{document}

50

Fig. 1.47

Carta generada con la clase

letter.

51

6.5 La clase slides


slides sirve para elaborar transparencias. La numeracin es con-

La clase

secutiva en la parte inferior derecha. En esta clase no se utilizan los comandos

\end{chapter}, \section, \pagestyle, \thispagestyle,


table y figure. Lo dems se puede utilizar libremente.

ni los

entornos

\documentclass{(slides}
< declaraciones: paquetes, comandos >
Prembulo
< ttulo >, < autor >, < fecha >
\begin{document}
\begin{slides} n
Documento

contenido de las diapositivas

\end{slides}
\end{document}

Ejemplo de un documento escrito en el estilo slides


El documento que se obtiene con el siguiente cdigo puede apreciarse en
la gura 1.48.

\documentclass{slides}
\usepackage[latin1]{inputenc}
\title{La clase slides en \LaTeX}
\author{A. U. Tor}
\begin{document}
\begin{slide}
\maketitle
\end{slide}
\begin{slide}{Estructura de las diapositivas}
Las diapositivas usualmente se imprimen o fotocopian en
transparencias para luego ser proyectadas en una pantalla.

52

Producir diapositivas agradables requiere de un formato


visual, lo que significa que \LaTeX\ no es del todo
adecuado para esto. He aqu algunas razones por las
cuales debera usar \LaTeX\ para elaborar sus
diapositivas:
\begin{itemize}
\item Si estn basadas en un documento proveniente de
\LaTeX.
\item Si sus diapositivas tienen grana cantidad de
frmulas matemticas.
\item Si no desea hacer diapositivas a costo de aprender a
usar otro sistema.
\end{itemize}
\end{slide}
\begin{slide}
\centering{MUCHAS GRACIAS} % (centra el texto)
\end{slide}
\end{document}

7 Paquetes
Un paquete (en ingls package ) es un conjunto de macros (instrucciones de

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


TEX o L
E
existentes. La sintaxis para invocar un paquete es la siguiente

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


Los paquetes propiamente dichos son archivos con extensin

sty. Algu-

nos paquetes son muy pupulares y tienen un estatus semi-ocial pero no


vienen instalados en implementaciones corrientes. El usuario debe aprender a instalarlos, lo cual depende tanto de la plataforma computacional
utilizada como de la implmentacin local.

53

Fig. 1.48

slides. El inconveniente de
geometry (ver seccin 10)

Transparencia generada con la clase

la orientacin se supera usando el paquete

54

Fig. 1.49

slides. El inconveniente de
geometry (ver seccin 10)

Transparencia generada con la clase

la orientacin se supera usando el paquete

55

Fig. 1.50

slides. El inconveniente de
geometry (ver seccin 10)

Transparencia generada con la clase

la orientacin se supera usando el paquete

56

7.1 Paquetes estndar ms utilizados

amsmath,
amssymb,
amsthm
geometry

Utilizados para la edicin de textos, manejo de


smbolos, teoremas y sus respectivas demostraciones.
Proporciona una forma simple e intuitiva de ajustar los mrgenes, adems permite variar libremente el tamao y la orientacin del papel.

babel

Utilizado para generar documentos en idiomas distintos al ingls.

inputenc

Utilizado para obtener caracteres no pertenecientes al conjunto ASCII.

graphicx
subgure

Es utilizado para realizar la inclusin de grcas.


Permite introducir guras con ms de un grco,
y pies de guras personalizados.

hyperref

Permite generar enlaces activos para las referencias, notas al pie, captulos, secciones, etc. en el
ndice general, as como marcadores.

color

Permite la inclusin de textos en color y colocar


fondos coloreados.

multicol

Permite escribir un documento a dos o ms columnas.

PSTricks

Se utiliza para la creacin, manipulacin y transformacin de guras geomtricas.

fancyhdr

Se utiliza para controlar complemente el contenido y la apariencia de los encabezados y pies de


pgina.

fancychap

Permite cambiar la presentacin de la primera pgina para los captulos.

fancybox

Permite la inclusin de caja con bordes coloreados


y decorados.

colortbl

Permite colorear las las, columnas o casillas de


una tabla.

57

longtable
caption

Permite extender tablas por dos o ms pginas.


Permite manipular la apariencia de los epgrafes o
rtulos de la tablas y grcas.

makeidx

Permite generar automticamente ndices alfabticos y temticos.

Todos los paquetes previamente mencionados son distribuidos gratuitamente por la CTAN (ver subseccin 1.5) incluyendo un respectivo manual;
no obstante en las dos secciones siguientes se har una breve mencin de
los paquetes

babel, inputenc

geometry,

debido a su inmediato reque-

rimiento.

8 El paquete babel
babel

El paquete

permite generar textos en diferentes idiomas. Dado un

idioma en particular se tiene la escritura en dicho idioma de los ttulos de la


tabla de contenidos, lista de tablas, lista de guras, captulos, bibliografa,
etc. As como la particin automtica en patrones silbicos 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 espaol y una


opcin para que los prrafos de inicio de captulo, seccin o subseccin no
presenten sangra de primera lnea. Esto se ha conseguido digitando

\usepackage[spanish,es-noindentfirst]{babel}
en el prembulo.
Para cambiar de idioma en cualquier parte del documento se utiliza
el comando

\selectlanguage{<idioma>}, y para saber


\languagename.

el idioma que se

encuentra en uso se utiliza el comando

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}

58

La opcin recomendada para nuestro idioma es

latin1. As pues, en el

prembulo de nuestro documento deberemos escribir

\usepackage[latin1]{inputenc}
tras lo cual, por ejemplo, ya no es preciso utilizar el cdigo
a tildada sino que directamente digitamos

\'{a}

para la

Para digitar este trabajo se ha utilizado este paquete, por ese motivo
se utilizan directamente los smbolos

, , , , , , , , etc. sin recurrir

al cdigo mencionado en la subseccin 4.5.

10 El paquete geometry
El paquete

geometry

proporciona una forma simple e intuitiva de ajustar

los parmetros de colocacin del texto en un documento; adems, nos


permite variar libremente el tamao y orientacin del papel, siendo muy
til su empleo para la produccin de posters (tamao DIN-A0), pequeos
folletos, etc.
El ajuste de los diferentes parmetros 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}
se denira un tamao de papel DIN-A0 (841mm

1189mm), y se ajus2cm, respec-

taran los mrgenes izquierdo, derecho, superior e inferior a


tivamente. A modo de otro ejemplo, con

\usepackage[landscape]{geometry}
se cambiara la orientacin del papel, a horizontal.

11 Formato de pgina
11.1 Parmetros del formato de pgina
\headheight
\headsep

Altura del encabezado.

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

documento.

8 Para

el caso de tamaos estandarizados como el tamao DIN-A4 puede sustituirse

papersize={210mm,297mm} por a4paper.

59

\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

base del footer

9.

11.2 Modicacin de los parmetros del formato de pgina


Los parmetros del formato de pgina 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 habra que escribir en el prembulo:

\setlength{\footskip}{1cm}

12 Edicin de texto
12.1 Tipos
AT X elige el tamao y tipo de las fuentes usadas segn una estructura
L
E
lgica. Para cambiar directamente se pueden usar las instrucciones siguientes
Comando

Tipo

Abrev.

\textrm{<texto >}

Letra romana

\rm

\textit{<texto >}

Letra itlica

\it

\texttt{<texto >}

Mquina de escribir

\tt

\textbf{<texto >}

Letra negrita

\bf

\textsf{<texto >}

Letra sans serif

\sf

\textsl{<texto >}

Letra inclinada

\sl

\textsc{<texto >}

Letra versalita

\sc

9 Por lo general el footer es la lnea donde se ubica la numeracin, siempre que la


numeracin est en la parte inferior del documento.

60

Cada uno de los tipos de fuentes bsicos tiene su modo enftico, el cual
se obtiene por medio de comando

\emph{<texto >}
A continuacin se muestra una tabla que contiene ejemplos acerca de
los resultados obtenidos al usar el modo enftico en los tipos de fuentes
bsicos.

El modo enftico. El modo enftico.


El modo enftico.

\emph{El

modo enftico}.

El modo enftico. El modo enftico.

\textit{El

modo enftico.

\emph{El

modo enftico}.}

El modo enftico. El modo enftico.


\texttt{El

modo enftico.

\emph{El

modo enftico}.}

El modo enftico. El modo enftico.


\textbf{El

modo enftico.

\emph{El

modo enftico}.}

El modo enftico. El modo enftico.


\textsf{El

modo enftico.

\emph{El

modo enftico}.}

El modo enftico. El modo enftico.

\textsl{El

modo enftico.

\emph{El

modo enftico}.}

El modo enftico. El modo enftico.

\textsc{El
El comando

modo enftico.

\emph{El

\textnormal{<texto >}

modo enftico}.}

devuelve a la fuente por defecto.

Tambin es posible el uso de cualquier otra fuente que se tenga instalada.

12.2 Tamaos
El tamao de la fuente depende de la seelccin por defecto. Los comandos
para modicarlo son

61

Comando

Tamao

\normalsize

Letra normal

\small

Letra pequea

\footnotesize

Letra ms pequea

\scriptsize

Letra muy pequea

\tiny

La letra ms pequea

\large

Letra grande

\Large

Letra ms grande

\LARGE
\huge
\Huge

Letra muy grande

Letra enorme
La letra ms grande

Estos comandos afectan al texto que sigue a partir de su aparacin, o


al rea delimitada entre parntesis. Por ejemplo

Estas palabras aparecern en


{\tiny letra pequea}

Estas palabras aparecern en

letra

pequea

Para ajustar automticamente el espacio entre renglones, de acuerdo


con el tamao de letra en uso, se cuenta con el comando

\par. Un ejemplo

de su uso es el siguiente

{\Large ``Todo saber tiene


de ciencia lo que tiene de
matemtica'', Poincar}

Todo saber tiene de


ciencia lo que tiene de

{\Large ``Todo saber tiene


de ciencia lo que tiene de
matemtica'', Poincar \par}

Todo

matemtica, Poincar
saber

tiene

de

ciencia lo que tiene de


matemtica, Poincar

62

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 lneas, y si se quiere indicar


muy largo, L
E
el salto de lnea se utiliza el comando \\.

\begin{center}
El ingenioso hidalgo\\
D. Quijote de la Mancha
\end{center}

El ingenioso hidalgo
D. Quijote de la Mancha

Alineacin a izquierda o derecha


center existen los entornos flushright y
flushleft para alineacin del texto a derecha e izquierda, respectivamen-

De forma similar al entorno


te.

\begin{flushleft}
Este texto aparecer\\
alineado por su\\
parte izquierda
\end{flushleft}

Este texto aparecer


alineado por su
parte izquierda

\begin{flushright}
Este texto aparecer\\
alineado por su\\
parte derecha
\end{flushright}

Este texto aparecer


alineado por su
parte derecha

Tngase presente que el uso del comando

\\,

en los tres casos previos,

es opcional y depende de la extensin que queramos asignar a cada rengln


del texto en questin.

Citas textuales y poemas


Existen otros entornos para resaltar partes de un texto, como citas textuales o poemas, de cierta longitud. Los entornos que nos permiten hacerlo
son:

quote, quotation

cin de estos entornos.

verse.

A continuacin se da una breve descrip-

63

El entorno

quote

es adecuado para una cita textual no larga.

... B. Russell escribi:


\begin{quote}
Las matemticas pueden ser
definidas como aquel tema
en el cual ni sabemos nunca
lo que decimos ni si lo que
decimos es verdadero.
\end{quote}
El entorno

quotation

... B. Russell escribi:


Las matemticas pueden
ser denidas como aquel
tema en el cual ni sabemos nunca lo que decimos
ni si lo que decimos es
verdadero.

es ms apropiado para citas largas. Ntese la

diferencia con respecto al anterior.

... B. Russell escribi:


\begin{quotation}
Las matemticas pueden ser
definidas como aquel tema
en el cual ni sabemos nunca
lo que decimos ni si lo que
decimos es verdadero.
\end{quotation}

... B. Russell escribi:


Las matemticas pueden

\\.

denidas

como

sabemos nunca lo que decimos ni si lo que decimos


es verdadero.

Para escribir poesa disponemos del entorno


es separado con el comando

ser

aquel tema en el cual ni

verse,

donde cada verso

He aqu un poema
\begin{verse}
Voy a la casa donde no viviremos,\\
miro los muros que no levantarn,\\
huelo las bugambilas que no crecern,\\
y con los hijos que jams tendremos,\\
salgo a ver el mar ...\\
donde se han hundido tantas cosa nuestras.\\
\rightline{\textsc{(M. Scorza)}}
\end{verse}
El cdigo del cuadro anterior genera el siguiente texto:

64

He aqu un poema
Voy a la casa donde no viviremos,
miro los muros que no levantarn,
huelo las bugambilias que no crecern
y con los hijos que jams tendremos
salgo a ver el mar ...
donde se han hundido tantas cosa nuestras.

(M. Scorza)

Interlineado, sangra y espacios


El espacio entre lneas del texto se puede cambiar en el prembulo con la
orden

\renewcommand{\baselinestretch}{<nmero >}
donde nmero 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 nmero a un valor
decimal.
El espacio entre prrafos del texto se puede cambiar en el prembulo
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 prrafos del texto.

AT X introduce un sangrado de forma automAl inicio de un prrafo L


E
tica, que puede ser evitado con el comando \noindent.
La longitud del sangrado del texto se puede cambiar en el prembulo
con la orden

\setlength{\parindent}{<longitud >}
donde longitud se reere a una medida, como en el caso previo.
El salto de lnea sin provocar un cambio de prrafo puede llevarse a
cabo con uno de los siguientes comandos

\newline

\\[salto ].

Donde el

65

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


debe situarse la siguiente lnea. Si tal lnea no queda en la misma pgina,

AT X ignorar dicha longitud. La versin


L
E

\\*

indica que la lnea que se

inicia despus del comando no debe pasar a la pgina siguiente.


Para aumentar la distancia entre prrafos pueden usarse los comandos

\smallskip, \medskip

\bigskip,

el ltimo de los cuales aproxima-

damente supondra dejar una lnea 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 comandos siguientes:
M) y

\qquad

(espacio entre palabras),

\quad

(longitud de una

(longitud de dos M). Tambin se cuenta con los llamados

micro-espacios que son producidos por los comandos:


equivalente a un sexto de un
micro-espacios) y

\!

\quad), \;

\, (un micro-espacio
\: (tres

(dos micro-espacios),

(un micro-espacio negativo).

Y los siguientes comandos introducen espacios tanto horizontales (si


van en un texto normal) como verticales (si van entre prrafos),
(espacio de longitud medio M),
M) y

\negthinspace

\thinspace

\enspace
0.16667

(espacio de longitud

(espacio negativo de longitud

0.16667

M).

Notas a pie de pgina


Las notas a pie de pgina se generan con el comando

\footnote{<texto

de la nota >} en la posicin del texto en la que queremos que aparezca la


marca de la nota.
El espacio entre entre el texto y el pie de pgina se puede cambiar en
el prembulo 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
pgina.
El espacio entre entre pies de pgina se puede cambiar en el prembulo
con la orden

\setlength{\footnotesep}{<longitud >}
donde longitud se reere a una medida, como en el caso previo.
La lnea que separa los pies de pgina del texto tambin se puede
AT X usa por defecto para elaborar
cambiar en el prembulo. El cdigo que L
E
dicha lnea es

66

\newcommand{\footnoterule}{
\vspace*{-3pt}
\noindent\rule{2in}{0.4pt}
\vspace*{2.6pt}
}
Para modicar la lnea en cuestin debemos escribir, por ejemplo, en
el prembulo

\renewcommand{\footnoterule}{
\vspace*{-3pt}
\noindent\rule{10in}{2pt}
\vspace*{2.6pt}
}
lo que aumentara el largo y grosor de dicha lnea (Note que al inicio del
primer cdigo se usa

\renewcommand).

\newcommand,

mientras que al inicio del segundo,

Divisin silbica
Cuando la inclusin de una palabra supera la longitud de lnea y su ex-

AT X introduce una separacin silbica


clusin la hace demasiado corta, L
E
segn 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

\-.

incomible

Por ejemplo, reemplazando la palabra


por

in\-co\-mi\-ble

Este comando acta localmente sobre la palabra en cuestin, pero si queremos proporcionar al compilador informacin sobre cmo dividir ciertas
palabras en todo el texto, es posible usar, en el prembulo, la orden

\hyphenation{<palabra1

palabra2 ...>}

con la divisin correspondiente, en la siguiente forma

10

\hyphenation{ma-ter-ni-dad al-bo-ro-to}.
Las palabras se separan con espacios en blanco, sin signos de puntuacin.

10 Lamentablemente

slo la primera forma admite tildes, virgulillas, etc.

67

Evitar la separacin de palabras


Si no se desea que en un texto dos palabras seguidas aparezcan en lneas
distintas, como en el texto siguiente

Los nombre propios como


A. Einstein no deberan
aparecer en lneas
separadas.

Los

nombre

propios

como

A.

Einstein no deberan aparecer en


lneas separadas.

Los nombre propios como


A.~Einstein no deberan
aparecer en lneas
separadas.

Los

nombre

propios

como

A. Einstein no deberan aparecer


en lneas separadas.

13 Matemtica
13.1 Modos texto y display
TEX fue especialmente diseado para producir documentos de carcter
cientco con un contenido importante de matemtica. Precisamente, es

AT X
la calidad en la escritura de tipografa matemtica donde TEX y L
E
marcan la diferencia.
AT X divide la introduccin de tipografa matemtica segn
En esencia L
E
se haga en la misma lnea del prrafo en que se est escribiendo (modo
texto ), o en prrafos separados (modo display ).
La tipografa matemtica escrita en modo texto, ha de ser introducida
entre

$,

mientras que para hacerlo modo display, lo ms comn es

encerrar la expresin entre


puede ser entre

\[

\]).

$$

$$

(aunque, equivalentemente, tambin

Por otra parte, puesto que es muy frecuente el referenciar una frmula

equation, que esencialmente tiene el


$$, aade adems un nmero a la ecuacin para

matemtica en un texto, el entorno


mismo funcionamiento que
futuras referencias.

Ejemplo
El siguiente ejemplo muestra los funcionamientos de los modos texto y
display.

68

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


i+j\leq 2n}$ una sucesin de nmeros
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 sucesin $\tilde\gamma_{ij}$, es
decir $$\tilde\varphi(t_1^i t_2^j) =
\tilde\gamma_{ij}.$$
Sea

{
ij }0i+j2n
00 > 0.

una sucesin de nmeros reales

C[t1 , t2 ] el conjunt1 y t2 de grado 2n


y denimos
: C[t1 , t2 ] C el funcional lineal
complejo que interpola a la sucesin
ij , es decir

tales que

Consideramos

to de polinomios complejos en

(t
i1 tj2 ) = ij .

Los comandos

\textstyle

\displaystyle

Determinadas construcciones matemticas adquieren un tamao distinto


segn es escriban en modo texto o display. Por ejemplo:

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

La frmula

Pn

k=1
bien conocida.

k=

n(n+1)
es
2

La frmula

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

n
X
k=1

k=

n(n + 1)
2

es bien conocida.

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

69

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 frmula
$\displaystyle\sum_{k=1}^{n}k
= \frac{n(n+1)}{2}$ es bien
conocida.

La frmula

n
X

n(n + 1)
2

k=

k=1
bien conocida.

La frmula
$$\textstyle\sum_{k=1}^{n}k
= \frac{n(n+1)}{2}$$ es bien
conocida.

es

La frmula

Pn

k=1

k=

n(n+1)
2

es bien conocida.

13.2 Construcciones diversas


Tngase presente que algunas de las construcciones pueden precisar los
paquetes

amsmath

amssymb.

Fracciones

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

a
xy

b
x+y
ab
a+b

1+

Matrices

$$
\left( \begin{array}{lll}
1 & 2 & 3 \\4 & 5 & 6 \\7 & 8 & 9
\end{array}\right)
$$

2
5
8

70

$$
\left( \begin{array}{ccc}
1 & \cdots & n \\2 & \cdots & n+1 \\
\vdots & \ddots & \vdots \\
n & \cdots & 2n-1
\end{array}\right)
$$

n+1

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



1


0



f


e

Observe, en el ltimo ejemplo, que el entorno alternativo

equation*

no aade ninguna numeracin a la ecuacin.

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 + Beikx ,
(x) =
Dekx ,

si
si



g


v

x = 0,
x 6= 0.

71

Arriba y abajo

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


\stackrel{\beta \to 0}{\longrightarrow}
$$
def

a = +

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

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

(i, j)

Adornos y operadores

f
abc

abc

\widetilde{abc}

abc
z}|{
abc

abc
f

\widehat{abc}

\overleftarrow{abc}

c
abc

abc

\overline{abc}

abc

\underline{abc}

\overbrace{abc}

\underbrace{abc}

\sqrt{abc}

abc
|{z}

n
abc

\sqrt[n]{abc}

f^\prime

~x

\vec{x}

\overrightarrow{abc}

Nmeros combinatorios

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

 
n
n!
=
k
k! (n k)!

72

Fracciones generalizadas y continuas


El comando

\genfrac

se puede utilizar para producir fracciones per-

sonalizadas, con la sintaxis:

\genfrac{Delim.Izqdo}{Delim.Derecho}{GrosorLnea}
{Tamao}{Numerador}{Denominador}
0, 1, 2 y 3, que corres\displaystyle, \textstyle, \scriptstyle y

Para Tamao, se puede elegir entre los valores


ponden respectivamente a

\scripscriptstyle.

 
 
 
$$\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 travs del comando

4
=1+

\frac{4}{\pi}=1+\cfrac{1^2}{2+
\cfrac{3^2}{2+
\cfrac{5^2}{2+\dotsb}}}

Los comandos

\genfrac

\cfrac

\cfrac.

12
32

2+
2+

son propios del paquete

52
2 +

amsmath.

13.3 Texto en expresiones matemticas


La instruccin

\text{texto } se usa para incluir texto en modo matemtico.

ste comando se utiliza principalmente en los despliegues, ya que en el


discurso corriente el modo matemtico est delimitado por los smbolos

$.

$$\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

|xa| <

implica

|f (a)f (x)| < .

73

13.4 Tipos de letra en modo matemtico


$\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

Tngase en cuenta que los tipos


quete

amssymb.

\mathfrak

\mathbb

requieren del pa-

13.5 Smbolos matemticos en negrilla


El comando

\mathbf

afecta solamente a las letras del alfabeto ordinario,

a los nmeros y a las letras griegas mayscula no inclinadas. El pquete

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


los smbolos en negrita.

$$\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

|xa| <

implica

|f (a)f (x)| < .

74

13.6 Tamao de fuente en modo matemtico


Para realizar el cambio del tamao del texto matemtico se puede utilizar
los modicadores del texto normal, pero con la precaucin de que el modicador aplicado debe ser llamado antes de ingresar a un modo matemtico.

{\tiny $f_x:A\to\mathbb{R}^2$}

fx : A R2

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

fx : A R2

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

f x : A R2

{\Huge $f_x:A\to\mathbb{R}^2$}

fx : A R2

13.7 Alineacin de frmulas


Para alinear frmulas y/o separarlas en dos o ms renglones el paque-

te amsmath dispone de una coleccin 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
despus de

\\,

y es especialmente til con

align,

ya que preserva la ali-

neacin.

multline
Se utiliza para dividir frmulas, sin alinearlas, en dos o ms renglones,
estos se separan con

\\,

el primer rengln aparece alineado a la izquier-

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


nica numeracin en el ltimo rengln. El entorno
ninguna numeracin.

\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}

multline*

no produce

75

(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

gather
Con este entorno a diferencia de

multline

todos los renglones aparecen

centrados y para cada uno se genera una numeracin. Usando el modicador

\notag

Con la versin

se puede eliminar la numeracin en renglones particulares.

gather*

no se produce numeracin alguna.

\begin{gather}
(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{gather}

76

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


2

(1.2)

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

(1.3)

(1.4)

= (a + b)(a + 2ab + b )
3

= a + 3a b + 3ab + b

(1.5)

\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)
2

(1.6)

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

= a + 3a b + 3ab + b

\begin{gather*}
(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{gather*}
(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.7)

77

align

Este entorno a diferencia de

gather

permite alinear las frmulas con res-

&.
\\. Todos los renglones aparecen numerados.

pecto a un smbolo al cual es necesario colocar inmediatamente antes un


Los renglones se separan con
Con el modicador

\notag

particulares; con la versin

se puede eliminar la numeracin en renglones

align*

no se produce numeracin 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)
2

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

(1.9)

(1.10)

(1.11)

= (a + b)(a + 2ab + b )
3

(1.8)

= a + 3a b + 3ab + b

\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.12)

(1.13)

= (a + b)(a + 2ab + b )
3

= a + 3a b + 3ab + b

78

\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 nmero que aparece centrado verticalmente. Este entorno


debe estar bajo el alcance del entorno

equation

align.

\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)
= (a + b)(a2 + 2ab + b2 )
= a3 + 3a2 b + 3ab2 + b3

(1.14)

79

aligned
Sirve para construir bloques alineados independientes que pueden ser ubicados unos al lado de otros, o de otro tipo de material (como parntesis y
corchetes). Estos bloques aparecen centrados verticalmente, a menos que

t (tope) o b (base). Este entorno debe


equation y con esto adquiere la numera-

se usen los argumentos opcionales


estar bajo el alcance del entorno

cin de este entorno, para eliminar totalmente la numeracin es necesario


utilizar el entorno

equation*.

\begin{equation}
\begin{aligned}
a &= b + c + d \\
z &= x + y \\
m &= n
\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
z =x+y
m=n

\begin{equation*}
\begin{aligned}[t]
a &= b + c + d \\
z &= x + y \\
m &= n
\end{aligned}
..
.

A=B+C +D
Z =X +Y

=++

(1.15)

80

.
.
.
\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

gathered
Sirve para construir bloques independientes cuyas frmulas aparecen centradas horizontalmente que pueden ser ubicados unos al lado de otros, o de
otro tipo de material (como parntesis 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 numeracin de este entorno, para eliminar
totalmente la numeracin 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
.
.
.

81

..
.
\begin{gathered}
\phi &= \mu +\nu +\eta
\end{gathered}
\end{equation}
a=b+c+d

A=B+C +D

z =x+y

Z =X +Y

=++

m=n

\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

=++

(1.16)

82

align
El entorno

flalign

se usa como

align

para construir bloques alineados,

pero que aade espacio proporcional entre columnas, de manera que el


despliegue se imprime de extremo a extremo de la pgina. Para separar la
columnas se utilizan

&.

Cada una de las lneas del despliegue adquiere un

nmero, pero se puede usar el comando

\notag

para eliminar la numera-

cin de renglones particulares. La versin estrella (flalign*) no produce


numeracin.

\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

z =x+y

Z =X +Y

m=n

=++

(1.17)

(1.18)

13.8 Uso del comando \intertext


El comando

\intertext

permite aadir lneas de texto en cualquiera de

los entornos de alineacin, de tal manera que se preserva la alineacin 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}

83

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

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

(1.19)

la cual se puede reescribir como

f g 0 = (f g)0 f 0 g

(1.20)

entonces se concluye que

f g0 =

(f g)0

f 0g

(1.21)

13.9 Parntesis y signos de agrupacin


Para los smbolos de los parntesis y de los corchetes se usan las teclas

AT X provee de una variada gama de


usuales, para los dems smbolos L
E
comandos para producir dichos signos de agrupacin. A continuacin se
listan los comandos de los signos ms usualmente utilizados.

\{

\}

\langle

\rangle

\|

\lfloor

\rfloor

\lceil

\rceil

\vert

\Vert

Para aumentar el tamao de los smbolos de agrupacin se usan los modicadores

\left y \right antes del smbolo. stos se deben usar en pares,


\left. o \right. para formar el

de ser necesario, se usan los comandos


par.

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


AT X provee los modicadores \big, \Big, \bigg, \Bigg, los
para esto, L
E

84

cuales permiten tener un mejor control sobre el tamao de los signos de


agrupacin.

amsmath provee una

Adems de los modicadores anteriores el paquete

versin mejorada de stos, en una versin de parejas de izquierda a derecha:

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

$((a_1b_1)-(a_2b_2))
((a_2b_1)+(a_1b_2))$

$\big((a_1b_1)-(a_2b_2)
\big)\big((a_2b_1)+
(a_1b_2)\big)$

$\bigg((a_1b_1)-(a_2b_2)
\bigg)\bigg((a_2b_1)+
(a_1b_2)\bigg)$

$\Big((a_1b_1)-(a_2b_2)
\Big)\Big((a_2b_1)+
(a_1b_2)\Big)$

$\Bigg((a_1b_1)-(a_2b_2)
\Bigg)\Bigg((a_2b_1)+
(a_1b_2)\Bigg)$

((a1 b1 ) (a2 b2 ))((a2 b1 ) + (a1 b2 ))



(a1 b1 ) (a2 b2 ) (a2 b1 ) + (a1 b2 )



(a1 b1 ) (a2 b2 ) (a2 b1 ) + (a1 b2 )

(a1 b1 ) (a2 b2 )




(a2 b1 ) + (a1 b2 )

!
(a1 b1 ) (a2 b2 )

!
(a2 b1 ) + (a1 b2 )

85

13.10 Teoremas y estructuras relacionadas


El comando

\newtheorem{<nombre >}{<rtulo >}

(que es preferible ubi-

car en el prembulo del documento) dene una estructura numerada,


creando el entorno <nombre > con su respectivo contador. <rtulo > aparece 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 Grbner s y slo si $\forall f\in {\rm
Id}(G)$ con $f\not=0$ se tiene una representacin estndar
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$-representacin en $G$, para algn $t<{\rm
mcm}(HM(g_1),HM(g_2))$; entonces $G$ es una base de
Grbner.
\end{miteorema}
\begin{micorolario}
Para todos lo polinomios $p\in I$, se define la aplicacin
$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)$ se tiene que
$v_1(p_1)\not=v_1(p_2)$.
\end{micorolario}
.
.
.

\end{document}

86

Teorema 1
slo si
en

 
, 0 6 G, es una base de Grbner s y
GK X
f 6= 0 se tiene una representacin estndar de f

El conjunto

f Id(G)

con

G.

Teorema 2

 
nito y con 0 6 G, Supongamos que: g1 , g2
GK X
G, spol(g1 , g2 ) es igual a cero o tiene una t-representacin en G, para algn
t < mcm(HM (g1 ), HM (g2 )); entonces G es una base de Grbner.
Sea

Corolario 1

Para todos lo polinomios p I , se dene la aplicacin



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 numeracin subordinada respecto de los captulos, secciones, 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 representacin estndar de $f$ en $G$.
\end{miteorema}
\begin{miteorema}
Sea $G\subset K\big[\bar{X}\big]$ ... entonces $G$ es una
base de Grbner.
\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}

87

Teorema 13.1
estndar de

El conjunto

en

Teorema 13.2

 
,
G K X

... se tiene una representacin

G.

Sea

 

GK X

nito y con

0 6 G,

... entonces

es una

base de Grbner.

Corolario 13.1

Para todos lo polinomios

p I,

... se tiene que

v1 (p1 ) 6=

v1 (p2 ).

El comando

\newtheorem

tambin permite que la numeracin 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}
.
.
.

\begin{miteorema}
El conjunto $G\subset K\big[\bar{X}\big]$, ... se tiene
una representacin estndar de $f$ en $G$.
\end{miteorema}
\begin{miteorema}
Sea $G\subset K\big[\bar{X}\big]$ ... entonces $G$ es una
base de Grbner.
\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}

88

Teorema 13.1
estndar de

El conjunto

en

Teorema 13.2

 
,
G K X

... se tiene una representacin

G.

Sea

 

GK X

nito y con

0 6 G,

... entonces

es una

base de Grbner.

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 estn, por defecto,


en modo enftico. Es posible cambiar el modo enftico a modo normal
utilizando el comando

\rm.

\documentclass{book}
.
.
.

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

\begin{document}
.
.
.

\begin{miteorema}
{\rm El conjunto $G\subset K\big[\bar{X}\big]$, ... se
tiene una representacin estndar de $f$ en $G$.}
\end{miteorema}
\begin{miteorema}
{\rm Sea $G\subset K\big[\bar{X}\big]$ ... entonces $G$ es
una base de Grbner.}
\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}

89

Teorema 13.1
estndar de

El conjunto

en

Teorema 13.2

 
,
G K X

... se tiene una representacin

G.

Sea

 

GK X

nito y con

0 6 G,

... entonces

es una

base de Grbner.

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}

14.1 Entorno enumerate

1. Se trata de listas secuenciadas numricamente.


2. Los nmeros son consecutivos comenzando por 1, en cada llamada
al entorno.

\begin{enumerate}
\item Se trata de listas secuenciadas numricamente.
\item Los nmeros son consecutivos comenzando por 1, en
cada llamada al entorno.
\end{enumerate}

6. Es posible inicializar la numeracin a partir de un nmero diferente de 1 utilizando el comando

\addtocounter.

7. Por ejemplo, aqu se inicializa la numeracin a partir de 6.

90

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

14.2 Entorno itemize


Cada uno de los items son indicados con un smbolo determinado.
La longitud del texto no tiene lmite.

\begin{itemize}
\item Cada uno de los \emph{items} son indicados con un
smbolo determinado.
\item La longitud del texto no tiene lmite.
\end{itemize}

14.3 Entorno description

Primero:

Parece claro el funcionamiento de este entorno.

Observacin:

No es un entorno demasiado frecuente.

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

14.4 Listas anidadas


Las listas anteriores pueden ser incluidas unas dentro de otras, tanto del
mismo como de distinto tipo, hasta cuatro niveles de inclusin (por defec-

91

to).
El siguiente es un ejemplo que muestra listas mixtas, con cuatro niveles
de inclusin:

Primer nivel en

itemize

1. Primer nivel en

enumerate

(segundo nivel global)

enumerate (tercero global)


enumerate (cuarto global)

Segundo nivel en

a ) Segundo en

b ) Segundo elemento del cuarto nivel

Vuelta al tercer nivel global (segundo en

2. Segundo nivel (primer en

itemize)

enumerate)

Primer nivel

\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 Manipulacin de etiquetas en el entorno enumerate


El estilo de numeracin y las etiquetas que sealan cada lista son congurables fcilmente. En el entorno enumerate, las etiquetas por defecto
son:

92

1. Etiqueta de primer nivel

a ) Etiqueta de segundo nivel


1) Etiqueta de tercer nivel

Etiqueta de cuarto nivel

Etiqueta de cuarto nivel

2) Etiqueta de tercer nivel

b ) Etiqueta de segundo nivel


2. Etiqueta de primer nivel

\begin{enumerate}
\item Etiqueta de
\begin{enumerate}
\item Etiqueta de
\begin{enumerate}
\item Etiqueta de
\begin{enumerate}
\item Etiqueta de
\item Etiqueta de
\end{enumerate}
\item Etiqueta de
\end{enumerate}
\item Etiqueta de
\end{enumerate}
\item Etiqueta de
\end{enumerate}

primer nivel
segundo nivel
tercer nivel
cuarto nivel
cuarto nivel
tercer nivel
segundo nivel
primer nivel

La numeracin por defecto en la lista de nivel uno est formada por


nmeros arbigos, el nivel dos por letras en minsculas, el nivel tres son
nmeros nuevamente y el cuatro letras con apstrofe. Cada una de estas
etiquetas puede cambiarse redeniendo apropiadamente los comandos que
las generan. Tales comandos son:
y

\theenumiv,

\theenumi, \theenumii, \theenumiii

uno para cada nivel. Mientras que las etiquetas que gene-

\labelenumi, \labelenumii,
\labelenumiii y \labelenumiv. Si se quiere cambiar este comportamien-

ran la construccin de dichos comandos son

to por defecto en cualquier nivel, es necesario redenir ambos comandos,


justo antes del inicio del entorno correspondiente. Por ejemplo,

93

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
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, podra ser,

94

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
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 numeracin son

\arabic (nmeros arbigos), \roman, \Roman (numeracin romana, en mi-

95

nsculas y maysculas) y

\alph, \Alph (numeracin alfabtica, en mins-

culas y maysculas). Tngase en cuenta que listas alfabticas con ms


elementos que letras del alfabeto generar errores en la compilacin.

[ ] Etiqueta de primer nivel

I
[I-B ]

[ -A] Etiqueta de segundo nivel

II]

Etiqueta de segundo nivel

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 Manipulacin de etiquetas en el entorno itemize


$\blacksquare$
$\bullet$ () en el nivel dos, $\circ$ () en el
$\diamond$ () en el nivel cuatro. La modicacin de estas

El esquema de etiquetas por defecto en este entorno es


() en el nivel uno,
nivel tres y

etiquetas se lleva a cabo redeniendo los comandos del nivel correspodiente

\labelitemi, \labelitemii, \labelitemiii

\labelitemiv.

96

Etiqueta de primer nivel

Etiqueta de segundo nivel

Etiqueta de tercer nivel




Etiqueta de cuarto nivel


Etiqueta de cuarto nivel

Etiqueta de tercer nivel

Etiqueta de segundo nivel

Etiqueta de primer nivel

\begin{itemize}
\item Etiqueta de
\begin{itemize}
\item Etiqueta de
\begin{itemize}
\item Etiqueta de
\begin{itemize}
\item Etiqueta de
\item Etiqueta de
\end{itemize}
\item Etiqueta de
\end{itemize}
\item Etiqueta de
\end{itemize}
\item Etiqueta de
\end{itemize}

primer nivel
segundo nivel
tercer nivel
cuarto nivel
cuarto nivel
tercer nivel
segundo nivel
primer nivel

Por ejemplo, para cambiar la etiqueta de nivel uno por un trbol 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}

97

15 Inclusin de grcos
15.1 Grcos en LATEX
AT X son el
Los formatos ms recomendables para incluir grcos en L
E
Encapsulated PostScript (EPS) y el formato PostScript (PS). Si usamos

AT X, los formatos ms 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 prembulo.

15.2 El comando \includegraphics


La sintaxis de este comando es

\includegraphics[<opciones >]{<nombre

del archivo >}

Algunas opciones disponibles son


width

Anchura del grco.

height

Altura del grco.

scale

Dene un factor de escala a aplicar en ambas direcciones.

angle

Especica un ngulo de rotacin en grados sexagesimales.

natwidth

Especica la anchura originaria del grco cuando es PNG,

AT X.
o JPG y aun as se va a incluir en L
E
natheight

Especica la altura originaria del grco cuando es PNG o

AT X.
JPG y aun as se va a incluir en L
E

\includegraphics[width=2cm]{logo.eps}

\includegraphics[width=2cm,
height=1cm]{logo.eps}

98

\includegraphics[height=2cm,
angle=45]{logo.eps}

\includegraphics[scale=0.25,
angle=60]{logo.eps}

15.3 Figuras otantes


La inclusin 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 Creacin de guras otantes


figure, en cuyo interior si\includegraphics. La sintaxis del

Las guras otantes se crean con el entorno


tuamos el correspondiente grco con
entorno es

\begin{figure}[<posicin >]
\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 numeracin se asignar a la etiqueta

\label. El comando \label


\caption.

situado inmediatamente despus del

debe ser

99

Ejemplo de gura

Fig. 1.51

Si el comando
El comando

\caption

no aparece se cre auna gura sin numerar.

\listoffigures (normalmente situado al inicio del do-

cumento) genera una lista con todas las guras incluidas en el documento.
El comando

\caption

puede llevar un argumento opcional que es-

pecica 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.51 ha sido creada con el siguiente cdigo

\begin{figure}
\centering
\includegraphics[scale=0.25]{logo.eps}
\caption{Ejemplo de figura}
\label{ej}
\end{figure}

15.5 Posicionamiento de guras


La posicin en la que la gura aparece en el texto est determinada por
el argumento opcional que puede ser una (o ms de una) de las siguientes
letras
h

h, t, b, p.

Sita la gura all donde aparece el entorno. Esta opcin no puede


ser ejecutada siempre, pues es posible que el grco no entre en
el espacio de pgina que reste.

Sita la gura en la parte superior de la pgina.

Sita la gura en la parte inferior de la pgina.

Sita la gura en una pgina separada.

100

(a) It is a little logo


Fig. 1.52

(b) It is a big logo

Varias grcas en una gura

Si no se especica la posicin, el compilador toma por defecto la secuencia

[tbp].

AT X leer la gura y la tendr


Cuando se incluye una gura otante, L
E
en memoria hasta que encuentre una posicin que considere adecuada para
incluirla en el texto.

15.6 El paquete subfigure


El paquete

subfigure

permite introducir guras con ms de un grco.

Para utilizarlo debe colocarse en el prembulo

\usepackage{subfigure}
Por ejemplo, la gura 1.52 se ha creado con el cdigo

\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 grficas en una figura}
\label{ej2}
\end{figure}

16 Tablas
Las tablas son construcciones alineadas que, en principio, no pueden aparecer en ms de una pgina. El entorno para producir tales construcciones
es

tabular,

cuya sintaxis es

101

\begin{tabular}[<pocisin >]{<colocacin >}


las

\end{tabular}
El signicado de los argumentos es el siguiente

posicin

Posicin vertical de la tabla respecto de la lnea base. Puede

tomar los valores

t la lnea superior de la tabla se alinea con la lnea base,


b la lnea inferior de la tabla se alinea con la lnea base.
Si no aparece el parmetro, se centrar respecto de la lnea base.

colocacin

Alineacin de las columnas. Debe aparecer una entrada por

cada columna de la tabla adems de entradas opcionales para delimitar los bordes entre cada columna. Los formatos posibles para cada
columna son

l alineacin a la izquierda,
c la columna aparecer centrada,
r alineacin a la derecha,
p{wd} elemento tipo prrafo. El texto aparecer en un prrafo de
anchura wd, con la lnea superior alineada con las otras columnas,

*{num}{cols}
*{3}{c}

abreviacin para repeticin de formato. Por ejemplo,

es equivalente a

ccc.

Los elementos para separacin de columnas son

|
||

dibuja una lnea vertical,


dibuja dos lneas verticales prximas,

@{texto}

inserta texto entre dos columnas. til para cuando los valores

de una misma columna deben estar separados por una marca determinada (guin, punto decimal, etc.) La expresin

@{texto } elimina el

espacio automtico que se pone entre cada columna y lo sustituye por


el texto. Si se necesita espacio blanco extra, debe ser implcitamente
incluido.

102

16.1 Filas
Cada una de las las tendr la estructura siguiente

elemento1 & elemento2 & . . . & elementon \\

& se utiliza para separar dos columnas consecutivas


\\ para separar una la de la siguiente. Todas las las, salvo

Es decir, el smbolo
y el comando

la ltima debe ser nalizada con este comando.


Otros comandos son

\hline

este comando dibuja una lnea horizontal entre la y la. Debe

aparecer slo antes de la primera la, o justo a continuacin de


Dos comandos

\hline

\\.

dibujan dos lneas con un pequeo espacio

entre ellas.

\cline{n m}

como el comando

tre la columna

\\

\vline

\hline, dibuja una lnea horizontal enm. Slo puede aparecer detrs de

hasta la columna

y puede haber ms de uno.

este comando dibuja una lnea vertical en la lnea en la que aparece

de altura correspondiente a la la en la que se encuentra.

\multicolumn{<numero>}{col}{texto}

engloba un nmero de colum-

nas dado por nmero bajo una columna simple cuya anchura corresponde 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
cuatro

dos

tres

cinco

seis

103

\begin{tabular}{|l|c|r|}
\hline
\multicolumn{3}{|c|}{Tabla con
nmeros}\\
\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 nmeros
uno

dos

tres

cuatro

cinco

seis

siete

ocho

nueve

diez

once

doce

trece

catorce

\begin{tabular}{|lrrc|}
\hline
Pas & Total & Indgenas & 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}

104

Estados Unidos

14,7

Italia

1,82

Francia

3,4

10,5
0,25
0,6

Tab. 1.1

Pas

Ejemplo de tabla.

Total

Indgenas

Bolivia

6,9

4,9

71

Guatemala

8,0

5,3

66

20,0

9,3

47

9,5

4,15

43

Per
Ecuador

Porcentaje

\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}
\begin{tabular}{|@{\textbf{\ Captulo }}r %
@{:\quad Lecciones }r %
@{\thinspace-\thinspace}l@{\ }|}
\hline
\textbf{1} & 1 & 8 \\
\textbf{2} & 9 & 11 \\
\textbf{3} & 12 & 20 \\
\hline
\end{tabular}

105

Captulo 1:
Captulo 2:
Captulo 3:

Lecciones

1-8

Lecciones

9 - 11

Lecciones 12 - 20

\begin{tabular}{|p{3.5cm}|p{2cm}|}
\hline
Esto es un prrafo insertado dentro
de la celda de una tabla. &
El uso de largusimas y absolutamente
eternas palabras crea un mal efecto. \\
\hline
& bienaventurado. \\
\hline
\end{tabular}

Esto es un prrafo in-

El

sertado

largusimas

dentro

de

celda de una tabla.

la

uso

de

absolu-

tamente
eternas palabras crea un
mal efecto.
bienaventurado.

\raggedright
\centering

Para evitar la justicacin a ambos lados estn los comandos


(justiacin a derecha),

\raggedleft

(izquierda) o

AT X nunca divide la primera palabra de un prrafo,


Por otra parte, L
E
de modo que es necesario iniciar el prrafo con algo (un espacio vaco, por
ejemplo).

El ejemplo anterior se puede corregir del siguiente modo

106

\begin{tabular}{|p{3.5cm}|p{2cm}|}
\hline
\raggedright Esto es un prrafo insertado dentro
de la celda de una tabla. &
\raggedright El uso de largusimas y absolutamente
eternas palabras crea un mal efecto.
\tabularnewline
\hline
& \hspace{0cm}bienaventurado. \\
\hline
\end{tabular}
Esto es un prrafo

El uso de

insertado dentro de la

largusimas

celda de una tabla.

y absolutamente
eternas
palabras
crea un mal
efecto.
bienaventurado.

Obsrvese cmo 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 Parmetros de estilo


AT X, y puede ser
El estilo de las tablas est denido por defecto por L
E
cambiado, globalmente en el prembulo, o de forma local, no dentro del
entorno.
Los parmetros 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 lneas que conforman la tabla (valor

por defecto: 0.4pt),

107

\doublerulesep

es la separacin entre las lneas dobles (valor por defecto:

2pt),

\arraystretch

modica la distancia entre las las. Se trata de un factor

multiplicativo, de modo que el valor estndar corresponde a 1, y un


valor de 1.5 aumenta un 50 % la distancia.
Para realizar modicaciones en estos parmetros se usan las siguientes
declaraciones

\setlength\tabcolsep{<dimensin >}
\setlength\arrayrulewidth{<dimensin >}
\setlength\doublerulesep{<dimensin >}
\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

cuatro

dos

tres

cinco

seis

16.4 Tablas como objetos otantes


Al igual que las guras, las tablas no deberan (salvo excepciones) ser separadas en ms de una pgina, por lo que su ubicacin debera ser determinada por el compilador. Para tratar las tablas como un objeto otante
disponemos del entorno

table,

cuya sintaxis es

108

\begin{table}[<posicin >]
\centering
entorno tabular
\caption{<pie de la tabla >}
\label{<etiqueta >}
\end{table}
Por ejemplo, la tabla 1.2 ha sido generada con el siguiente cdigo

\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

27

16

64

Tab. 1.2

Potencias

17 Referencias cruzadas
17.1 Qu son las referencias cruzadas?
Es habitual en los documentos cientcos hacer referencias a partes del
documento como captulos, secciones, frmulas, tablas, guras, etc. Cada

109

AT X por orden
uno de estos elementos es numerado automticamente por L
E
de aparicin, pero si queremos hacer una referencia a alguno de ellos, no
es necesario conocer dicho nmero.
El procedimiento consiste en etiquetar el entorno en cuestin, de manera que el compilador almacena el nmero de referencia para un posterior
uso.
Por ejemplo, la subseccin inicial de esta seccin (subseccin 17.1) ha
sido etiquetada del siguiente modo

\subsection{Qu son las referencias


cruzadas?\label{subsec:intro}}
y la referencia de la lnea anterior ha sido producida con

...inicial de esta seccin (subseccin


\ref{subsec:intro}) ha sido etiquetada ...
La etiqueta

\label{sec:intro}
\section, es

mente al argumento de

no es necesario que siga inmediatadecir, puede ser situada en cualquier

parte de la seccin, pero no debe interferir con otro elemento susceptible


de numeracin.
La primera vez que se compila el chero que contiene referencias cruzadas, (p.e.

fichero.tex) la informacin sobre las referencias es almacenada


fichero.aux y al nal de la compilacin LATEXimprime el si-

en el chero

guiente aviso

LaTeX Warning: There were undefined references.


LaTeX Warning: Label(s) may have changed.
Rerun to get cross-references right.
Una segunda compilacin sobre el documento pondr las referencias
correctamente.
La clave con la que nombramos una etiqueta puede ser cualquier secuencia de letras, dgitos o caracteres de puntuacin, teniendo en cuenta

AT X distingue entre maysculas y minsculas.


que L
E

17.2 Entornos referenciables

Listas
Adems de la numeracin de captulos o secciones, cada elemento de un
entorno enumerate puede ser etiquetado aadiendo el correspondiente comando

\label

a cada entrada

\item.

Por ejemplo

110

En el silogismo clsico
\begin{enumerate}
\item Todos los hombres son mortales.\label{pre1}
\item Scrates es un hombre.\label{pre2}
\item Por tanto, Scrates es mortal.\label{con}
\end{enumerate}
Las afirmaciones (\ref{pre1}) y (\ref{pre2})
son las premisas y (\refcon) es la
conclusin.
En el silogismo clsico
1. Todos los hombres son mortales.
2. Scrates es un hombre.
3. Por tanto, Scrates es mortal.
Las armaciones (1) y (2) son las premisas y (3) es la conclusin.

Elementos otantes
Las guras y tablas pueden ser tambin referenciadas teniendo cuidado en
situar el comando

\label

justo despus del comando

\caption

o incluso

dentro de su argumento, como en el ejemplo mostrado a continuacin

\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$.

111

Valor de

Valor de

27

Tab. 1.3

Valores observados de

Dos posibles relaciones entre x e


y = x3 e y = 6x2 11x + 6.

que satisfacen los datos de la Tabla

1.3 son

Matemtica
En los documentos con contenido matemtico abundan las referencias, ya
sea a frmulas, guras, teoremas, etc. El proceso de etiqueta es igual al
hecho anteriormente: es necesario incluir el comando
entorno correspondiente.
Si se ha denido el entorno

\label

\newtheorem{thm}{Teorema}

dentro del

(vea la Sec.

13.10), entonces

\begin{thm}\label{diffcon}
Toda funcin diferenciable es continua.
\end{thm}
El recproco del Teorema \ref{diffcon} es falso.

Teorema 17.1

Toda funcin diferenciable es continua.

El recproco 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
Cambiando

por

en (1.22) resulta . . .

(1.22)

112

El paquete

amsmath permite usar el comando \eqref en lugar de \ref

para referenciar una ecuacin, con la diferencia de que el primero imprime


automticamente los parntesis alrededor del nmero.

Referenciacin de pginas
En lugar de hacer referencia al nmero de tabla o de ecuacin, a menudo
es til dar la numeracin de la pgina donde se encuentra dicho objeto. El
comando

\pageref{<etiqueta >}
imprime el nmero de la pgina en la que se encuentra

\label{<etiqueta >}.

Por ejemplo

vase la Tabla \ref{tabxy} en la pgina


\pageref{tabxy}.
produce
vase la Tabla 1.3 en la pgina 111.

18 Notas al pie y al margen


18.1 Comandos para insertar pies de pgina
Para insertar una nota al pie de pgina se usa el comando

\footnote[<nmero >]{<texto

de la nota >}

ste comando inserta una nota al pie de pgina con el texto de <texto

de la nota >y el nmero especicado en <nmero >. si <nmero >se omite,


se usa la numeracin automtica. Este comando no se admite dentro de
una caja, ni dentro de otro

\footnote,

ni dentro del entorno

\tabular.

Las notas al pie de pgina dentro de una mini-pgina aparecen en la


parte inferior de sta, no en la parte inferior de la pgina vigente.
Por ejemplo, el siguiente cdigo

Mi primera nota\footnote{Numerada atomticamente} y mi


segunda nota\footnote[201]{Numerada especficamente.}.
Produce

113

Mi primera nota

11 y mi segunda nota201 .

y las respectivas notas aparecen al pie de esta pgina.

18.2 Insercin de pies de pgina en lugares prohibidos


El comando

\footnotemark[<nmero >] produce slo la

marca que se-

ala la nota al pie de pgina en el texto. El argumento <nmero >funciona


igual que el de

\footnote.
\footnotetext[<nmero >]{<texto

El comando

de la nota >} pro-

duce la nota al pie de pgina, sin insertar ninguna marca. El argumento


<nmero > especica el smbolo que identica la nota. Este comando est

\footnote.
\footnotemark y \footnotetext se usan en conjuncin

restringido, as como
Los comandos

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 pgina.

18.3 Modicacin de los contadores de los pies de pgina


El comando

\renewcommand{\thefootnote}{<estilo >}

permite modi-

car el estilo de la marca que seala las notas al pie de pgina.

\arabic{footnote} produce marcas con la numeracin por defecto:


1, 2, 3, . . .
\roman{footnote} produce marcas con nmeros romanos en minsculas: i, ii, iii, . . .

\Roman{footnote} produce marcas con nmeros romanos en maysculas: I, II, III, . . .

\alph{footnote}

produce marcas con la letsras del alfabeto en mi-

nsculas: a, b, c, . . .

\Alph{footnote} produce marcas con la letsras del alfabeto en maysculas: A, B, C, . . .

\fnsymbol{footnote}
11 Con
201 Con

numeracin atomtica
numeracin especca.

produce marcas con smbolos: *,

...

114

18.4 Notas al margen


La inclusin 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 lnea de texto principal. Si se emplea la opcin

oneside, la nota se imprime a la derecha, y si se usa la opcin twoside, en


el exterior.

Si se usa el argumento opcional, el texto TextoIzquierda aparecer cuando la nota corresponda al margen izquierdo y el texto TextoDerecha lo har
cuando la nota est en el margen derecho. Por ejemplo

Cuntame poeta cmo es la luna y no la de un tal Louis


Armstrong. No olvides poeta tu sueo de volar con
la pluma del ala y la necesidad. Cuntame poeta si
es el desamor lo que constituye el diccionario del
amor\ldots\marginpar{Ariel\\Dufey\\Ramos.}.
produce

Cuntame poeta cmo es la luna y no la de un tal Louis Armstrong. No


olvides poeta tu sueo de volar con la pluma del ala y la necesidad. Cuntame poeta si es el desamor lo que constituye el diccionario del amor. . . .

19 Insercin de texto plano


Los archivos de

texto plano (en ingls plain text) son aquellos que estn

compuestos nicamente por texto sin formato, slo caracteres. Estos caracteres se pueden codicar de distintos modos dependiendo de la lengua
usada. Algunos de los sistemas de codicacin ms usados son: ASCII,
ISO-8859-1 o Latn-1, Unicode, etc. . . .
Se les conoce tambin como archivos de texto llano, o texto simple, por
carecer de informacin destinada a generar formatos (negritas, subrayado,
cursivas, tamao, 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

115

literalmente. Los espacios y cambios de rengln 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 lnea de texto

plano.

20 Bibliografa
20.1 El entorno thebibliography
La bibliografa es el entorno que permite al autor listar las referencias
utilizadas y citarlas en algn 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

nmero de referencia o el nombre del autor, segn sea el estilo escogido.


El entorno se dene del siguiente modo

\begin{thebibliography}[<etiqueta mayor >]


\bibitem[<leyenda1 >]{<referencia1 >} Ttulo, autor, ...
\bibitem[<leyenda2 >]{<referencia2 >} Ttulo, 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 publicaciones, entonces deberemos comenzar con

\begin{thebibliography}[99].

Si vamos a referenciar con el nombre del autor, entonces debemos poner el


nombre ms largo que vayamos a usar,

\begin{thebibliography}[nombre].

116

El argumento opcional de

\bibitem,

leyenda se utiliza para modicar

la identicacin en la lista de referencias, en lugar de un nmero. El argumento referencia ser la etiqueta usada para referenciar la cita. Se usa a

\cite:
\cite{etiqueta1 }
\cite{etiqueta1,etiqueta2,...}

travs del comando

Si queremos aadir algn dato ms a la referencia (nmero de pgina


donde aparece, o el captulo, etc.) usamos un argumento opcional

\cite[pgina

25 ]{etiqueta1 }

El siguiente cdigo muestra un ejemplo de funcionamiento del entorno

12 .

La referencia clsica en \LaTeX\ es \cite{GH}.


Otras referencias interesantes son \cite{GU,Kn}
.
.
.
\begin{thebibliography}{9}
.
.
.
\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}
12 La bibliografa que aparece en dicho cdigo corresponde a la bibliografa de este
libro.

117

AT X es [3]. Otras referencias interesantes son


La referencia clsica en L
E
[4, 5]

20.2 ndice de contenidos


El entorno bibliografa crea una seccin del documento a modo de captulo
(si la clase de documento es

report) o seccin (si la clase es article). Sin

embargo no aparece listado en el ndice de contenidos. Para introducir


dicho captulo o seccin en el ndice es necesario aadir una lnea como la
que sigue

\addcontentsline{<ExtensinFichero >}{<Unidad >}


{<TextoEntrada >}
El parmetro ExtensinFichero se reere a uno de los cheros donde

AT X almacena informacin sobre ndices de contenido, de guras o tablas.


L
E
Las extensiones respectivas son

toc, lof

lot.

El argumento Unidad se reere a qu tipo de unidad de estructura


queremos asimilar dicha entrada, es decir, si se trata de una seccin, un
captulo, etc. Los valores sern
El

TextoEntrada

section, chapter,

etc.

el lo que deseamos que apareza en el ndice corres-

pondiente. As, la entrada a incluir ser

\addcontentsline{toc}{chapter}{Bibliografa}

21 El programa BibTex
La elaboracin de entornos para bibliografa puede automatizarse cmodamente usando el programa BibTEX. Dicho programa crea un entorno
bibliogrco para un documento concreto a partir de una base de datos
previamente construida. De este modo, slo es necesario mantener una base
de datos y recurrir a ella para construir la bibliografa de cada documento
que escribamos.
La base de datos consiste en uno o varios archivos con extensin

.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 automticamente incluida en la bibliografa
del mismo a travs del programa BibTEX.

118

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 bibliogrcas se colocarn en la posicin en la que aparece dicho comando y sern extradas de
los archivos

database1.bib

database2.bib13 .

El estilo que aparecer en la bibliografa viene especicado por el comando

\bibliographystyle,

que determinar el formato en el que apa-

recern las diferentes entradas. Por ejemplo

\bibliographystyle{plain}
especica que las entradas sern formateadas segn el estilo

plain

que se

encuentra descrito en el chero (plain.bst). Es posible situar este comando en cualquier punto del documento despus de

\begin{document}.

21.1 Estilos de BibTeX

plain

Estilo estndar. Las entradas son numeradas correlativamente por


orden alfabtico 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

estn formadas por el nombre del autor y el ao de publicacin, en


lugar de ser nmeros.

abbrv

Similar al estilo plain, pero las entradas son ms 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.

Adems varias organizaciones, revistas, etc. han desarrollado sus propios estilos bibliogrcos, algunos de los cuales vienen con la distribucin
MiKTEX (vase

13 Atencin

C:\Archivos de programa\MiKTeX 2.9\bibtex\bst).

al path en el que se encuentre el archivo.

119

21.2 Pasos para ejecutar BibTeX con LaTeX


AT X, se generar un listado de referencias para cada co1. 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

.bst
.blg.

bibliografa formateado segn el hero


avisos sern escritos en un chero

escogido. Los errores o

AT X, se lee el chero
3. En la siguiente compilacin de L
E

.bbl.

4. Una tercera compilacin resuelve todas las referencias cruzadas.


Ntese que las referencias que aparecern en el texto son aquellas que
hayan sido citadas mediante
datos

.bib.

\cite,

y no todas las presentes en la base de

En ocasiones, es posible querer incluir publicaciones que no son explcitamente 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 Creacin de bases de datos bibliogrcas


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 segn
un formato especco. 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 segn el tipo de publicacin que sea: libros, artculos, prepublicaciones, etc. El resto de la informacin es escrita entre llaves, comenzando por

120

\cite), En
\cite{knuth:86a}. El resto de la informa-

la etiqueta (la que usaremos para la referencia con el comando


el ejemplo anterior pondramos

cin sobre la referencia es introducida mediante varios campos, separados


por comas, en el formato que se aprecia. Los espacios son opcionales. La
informacin de cada campo puede ser incluida entre llaves o entre comillas
dobles; sin embargo, si la informacin del campo consta nicamente de
nmeros, no son necesarios los delimitadores. Cada tipo de entrada tiene
una serie de campos requeridos y otros opcionales. En caso de ausencia de
algn campo requerido BibTEX dar un informe de error.
Los tipos de referencias, los campos requeridos y los opcionales son

@article

Artculos 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

Artculo 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 ttulo propio.

campos requeridos

author, title, booktitle, publisher, year.

campos opcionales

editor, volume or number, series, type, chapter, pa-

ges, address, edition, month, note.

@inproceedings

Artculo en las publicaciones de un congreso.

campos requeridos

author, title, booktitle, year.

campos opcionales

editor, volume or number, series, pages, address, month,

organization, publisher, note.

121

@manual

Entrada para documentacin de tipo tcnico.

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 dems 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 artculos 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 ttulo y autor.

campos requeridos

author, title, note.

campos opcionales

month, year.

CAPTULO II

PROGRAMACIN CON LTEX


A

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 ms simples. El resto de lo que
propiamente se llama TEX unas 600 instrucciones, son macros, es decir, comandos denidos a partir de las 300 primitivas, haciendo uso de
las capacidades de compilador (es decir, lenguaje de programacin) de

AT X es otro conjunto de macros


TEX. Asimismo, el procesador de textos L
E
construidas a partir de comandos TEX. En ste captulo se introducirn
las herramientas bsicas de programacin disponibles en TEX, tiles para
denir nuevos comandos o entornos, modicar parmetros, automatizar
tareas, en denitiva personalizar nuestro documento.

1 Creacin de comandos y entornos


1.1 Comandos
\newcommand para
AT X que puedan ayudarnos a simplicar el readenir nuevos comandos L
E
lizar tareas repetitivas. Para la denicin de un nuevo comando se dispone

En sta seccin describiremos cmo utilizar el comando

de tres posibilidades

\newcommand{\NombreComando}[NumArg][ArgDefecto]{Definicion}
\renewcommand{\NombreComando}[NumArg][ArgDefecto]{Definicion}
\providecommand{\NombreComando}[NumArg][ArgDefecto]{Definicion}
\NombreComando es el nombre que queremos asignar al nuevo coNumArg indica el nmero de argumentos que va a tener (comprenentre 1 y 9), ArgDefecto es el valor por defecto de un argumento

donde

mando,
dido

123

optativo (el primero de ellos), y

Definicion

contiene la denicin del co-

mando, donde los distintos argumentos se denotan como

#1, #2, etc . . .


\newcommand

Entre estas tres versiones existen diferencias importantes.

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 denicin anterior


del comando. Finalmente,

\providecommand dene el nuevo comando slo

en el caso de que el comando no exista; en caso contrario la nueva denicin


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 ms de un prrafo, mientras que las versiones sin asterisco (\newcommand{\NombreComando}[NumArg]{ArgDef}{Def}, etc . . . )
permiten que los argumentos se extiendan a ms de un prrafo.

1.2 Ejemplos
Es preferible que ubicar las deniciones de los nuevos comandos en el
prembulo.
Supongamos que la expresin

(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
comando) se imprimir (x1 , x2 , . . . , xn ).

nombre del nuevo

Ahora compliquemos un poco el ejemplo con la introduccin de argumentos variables. Si por ejemplo escribimos

\newcommand{\vect}[1]{(#1_1,#1_2,\dots,#1_n)}

(aadiendo un argumento, que se sustituye en la frmula con  #1),

$\vect{x}$ obtendramos (x1 , x2 , . . . , xn ), mientras que


$\vect{a}$ se tendra (a1 , a2 , . . . , an ), etc . . .

escribiendo
con

Aadiendo ms argumentos, podemos obtener construcciones ms


complejas, por ejemplo, deniendo

\newcommand{\vect}[2]{(#1_1,#1_2,\dots,#1_#2)}
$\vect{x}{n}$ dara como resultado (x1 , x2 , . . . , xn ), mientras
con $\vect{a}{p}$ se obtendra (a1 , a2 , . . . , ap ).

que

Practiquemos ahora la denicin de comandos con argumentos optativos, que toman un determinado valor por defecto. Por ejemplo,

124

construyamos

\newcommand{\nuevovector}[2][x]{(#1_1,#1_2,\dots,#1_#2)}
donde la  x entre corchetes es el valor por defecto del argumento opcional (siempre el primero). As, escribiendo $\nuevovector{n}$
$\nuevovector{p}$ obtendramos (x1 , x2 , . . . , xn ) y (x1 , x2 , . . . , xp )
respectivamente, mientras que aadiendo un argumento optativo cambiaramos el valor por defecto de  x,

$\nuevovector[a]{n}$

dara

(a1 , a2 , . . . , an ).

2 Entornos
Tambin es posible denir nuevos entornos, o redenir entornos ya existentes; 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 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 ms de un prrafo.
Por ejemplo, construyamos un entorno que cree una minipgina de
anchura variable por defecto media pgina), 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

125

\begin{mientorno}
Ejemplo de texto con una anchura estndar de media
pgina, centrado, y en tipo de letra negrita.
\end{mientorno}
obtenemos

Ejemplo de texto con una anchura estndar de media pgina,


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 pgina,
centrado, y en tipo de letra negrita
\end{mientorno}

Ejemplo de texto
con una anchura de
un tercio de pgina, centrado, y en
tipo de letra negrita.
Es importante tener en cuenta que los argumentos de un entorno slo

pueden utilizarse en la denicin de entrada (DefEntrada). Si los necesitamos en la denicin 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 Fernndez}
Nuestras vidas son los ros que van a parar al mar,
que es el morir
\end{cita}

126

produce

 Nuestras vidas son los ros que van a parar al mar, que es el
morir 
Andres Fernndez

3 Compilacin 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
El comando

\input{Fichero.tex}

produce que el compilador, al

encontrar esta instruccin, lee el chero indicado en el argumento


y contina compilando dicho chero. En el argumento del comando
podemos dar, si el chero no se encuentra en el directorio actual,
el camino hasta l. Debe tenerse cuidado de que instrucciones clave
como

\documentclass o \begin{document} no se dupliquen. Enton-

ces, 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 depuracin de errores, descomentar individualmente
cada una de las lneas

\input{fichero.tex}.

Tambin es posible

utilizar este comando para otros usos, por ejemplo, incluir listas de
instrucciones

\newcommand y personalizaciones diversas que podamos

querer hacer comunes a varios documentos.


Una alternativa ms cmoda es utilizar, en vez de
mando

\include{Fichero}

\input, el co.tex en

(es esencial omitir la extensin

ste caso). Entonces, en el prembulo se puede colocar el comando

\includeonly{Fichero1,Fichero2,...},

que hace que slo se

127

incluyan en la compilacin los cheros que aparecen en el argumento. Es importante mencionar que al comenzar y terminar, la orden

\include induce un salto de pgina (ms exactamente, un comando


\clearpage, que adems expulsa elementos otantes pendientes),
por lo que esta alternativa es conveniente utilizarla slo para incluir
captulos de un libro o tesis.

4 Conceptos bsicos sobre contadores y longitudes


4.1 Contadores
AT X utiliza un amplio nmero de contaEn su funcionamiento habitual, L
E
dores con el n de enumerar distintos elementos de un documento: pginas, secciones, tablas, guras, etc... Cada contador tiene un nombre

que permite identicarlo; as, page es el contador que identica pginas,


chapter captulos, etc... En lo sucesivo, denotaremos ese nombre como
NombreContador. Cada contador lleva asociados una serie de elementos de
diferente signicado: nombre, valor (siempre un nmero entero) y formato,
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 (nmero de letras en

el abecedario.

Nota 2:

El resultado mostrado es el que se obtiene con

spanish.

babel,

opcin

Sin ello, se obtendra i, ii, iii, ... No obstante, aunque se

use el paquete

babel

con la opcin

spanish

es posible obtener las

minsculas en la numeracin romana insertando el siguiente cdigo


en el prembulo

\makeatletter
\def\@roman#1{\romannumeral #1}
\makeatother

128

Nota 3:

Igualmente, el resultado mostrado es el obtenido con

spanish;

babel

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 representacin

NombreContador
\theNombreContador.

del contador, que permite imprimir el valor del contador


en alguno de los formatos descritos; el comando es

AT X dene un nuevo contador, le asigna inicialmente la reCuando L


E
presentacin 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 cmo obtener


el nmero de la pgina en curso; sta
pgina es la nmero \thepage, en la
representacin original.\\
\renewcommand*{\thepage}{\roman{page}}
Ahora esta cambiada a nmeros romanos; sta
pgina es la nmero \thepage.\\
\renewcommand*{\thepage}{[Sec. %
\thesection\ -- Pg. \arabic{page}]}
Luego, algo ms elaborado; sta pgina
es la nmero \thepage.\\
\renewcommand*{\thepage}{\arabic{page}}
Finalmente, volvemos al formato original; sta
pgina es la nmero \thepage.
Este ejemplo muestra cmo obtener el nmero de la pgina en curso;
sta pgina es la nmero 128, en la representacin original.
Ahora esta cambiada a nmeros romanos; sta pgina es la nmero cxxviii.
Luego, algo ms elaborado; sta pgina es la nmero [Sec. 4  Pg. 128].
Finalmente, volvemos al formato original; sta pgina es la nmero 128.
Podemos cambiar los valores de un contador con los siguientes comandos

\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
negativa.

positiva o

129

Esta es la seccin \thesection. Pero podemos


a\~{n}adirle 2 fcilmente;
\addtocounter{section}{2}
ahora estamos en la seccin \thesection.
Mejor lo dejamos como estaba, porque si no las
restantes secciones quedaran numeradas
incorrectamente (esto es, el efecto de estos
cambios de numeracin es \emph{global}).
\addtocounter{section}{-2}
Esta es la seccin 4. Pero podemos aadirle 2 fcilmente; ahora estamos
en la seccin 6. Mejor lo dejamos como estaba, porque si no las restantes
secciones quedaran numeradas incorrectamente (esto es, el efecto de estos
cambios de numeracin es global ).
Podemos recuperar el valor numrico de un contador, independientemente de su representacin, con el comando

\value{NombreContador}
lo cual es til para la gestin de contadores, como veremos a continuacin.
Se denen nuevos contadores con la instruccin

\newcounter{NuevoContador}[ContadorExistente]
NuevoContador, y le asigna cero coContadorExistente es optativo, y sirve para subordinar NuevoContador al contador ya existente ContadorExistente,
de la misma forma que, por ejemplo, el contador subsection est subordinado al contador section: incrementar en una unidad el contador section
implica que el contador subsection se reinicia a cero automticamente.

que introduce un contador de nombre


mo valor inicial. El argumento

Veamos un ejemplo de cmo introducir un nuevo contador, con el n

de enlazar varias listas enumerate manteniendo la numeracin (enumi es

AT X para los tems de primer nivel en entornos


el contador estndar L
E
enumerate)

Las primeras lecciones son las siguientes:


\newcounter{conserva}
\begin{enumerate}
\item Nmeros reales
\item Nmeros complejos
\setcounter{conserva}{\value{enumi}}
\end{enumerate}

130

Mas adelante, se estudiarn temas ms complicados:


\begin{enumerate}
\setcounter{enumi}{\value{conserva}}
\item Continuidad
\item Derivacin
\end{enumerate}
Las primeras lecciones son las siguientes:
1. Nmeros reales
2. Nmeros complejos
Mas adelante, se estudiarn temas ms complicados:
3. Continuidad
4. Derivacin
Debe mencionarse que al crear un nuevo contador se crea automticamente el comando

NuevoContador}

\theNuevoContador,

con la denicin

por defecto.

Cuando se modica un contador con los comandos

\addtocounter,

\arabic{

\setcounter

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


\ref el texto generado
por \theNuevoContador cuando se utilizan referencias cruzadas con
los comandos \label y \ref.
declarando tambin como valor del comando

Veamos un pequeo 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}

131

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

N , x1 , x2P
, . . . , xN .
N
SU M A = i=1 xi .
SU M A = 0.
Para i = 1, 2, . . . , N : SU M A = SU M A + xi .
SALIDA(SU M A); PARAR.

Entrada:
Salida:
1
2
3

4.2 Longitudes
AT X es tambin capaz de crear y modiAl 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

Rgidas:

Toman un valor determinado; por ejemplo

\thinspace

= 1.958 pt,

\hoffset

\quad
1

= 11.747 pt,

= -28.45274 pt .

Elsticas:

AT X puede modicar dentro de unos lToman un valor que L


E
mites, a n de optimizar la composicin del documento. Por ejemplo,

\bigskip, \medskip
El comando

\bigskip

\smallskip.

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, segn
convenga a n de distribuir el espacio de forma homognea. Alguna de

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 rgido

132

las holguras

plus

minus

pueden estar ausentes en la denicin, pero si

ambas aparecen deben estar en se orden.


Los comandos

\bigskip, \medskip

\smallskip,

respectivamente,

\bigskipamount, \medskipamount y \smallskipamount, por lo que tales comandos


tienen asociadas longitudes elsticas con valores almacenados en
se deniran de hecho como

\bigskip

\vspace{\bigskipamount}

\medskip

\vspace{\medskipamount}

\smallskip \vspace{\smallskipamount}
y donde cada una de stas longitudes elsticas 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 ocurra 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 rgido como elstico (por ejemplo, 5mm plus
1mm minus 2mm). Tambin es posible que

Valor

sea una varia-

ble de longitud (\textwidth) con quizs un factor multiplicativo


(0.5\textwidth, por ejemplo).

Una forma alternativa de asignar a


utilizar la sintaxis

\NombreLongitud=Valor

o bien

\NombreLongitud

un valor es

\NombreLongitud Valor.

\addtolength{\NombreLongitud}{Valor} Suma a la longitud


\NombreLongitud la cantidad Valor, que puede ser positiva o negativa.

133

Al contrario que lo que ocurra con los contadores, cuyas asignaciones


tienen carcter global (es decir, trascienden el grupo dentro del cual han
sido declaradas, y tienen efecto en todo el resto del documento), las asignaciones de longitud tienen por defecto carcter local ; si se realizan dentro
de un grupo, el valor anterior a la asignacin se recupera a la salida del
grupo. En el caso de que deseemos un efecto global, puede ser aconsejable
realizar tales asignaciones en el prembulo del documento.
Se pueden denir nuevas longitudes con el comando

\newlength{\NuevaLongitud}
\NuevaLongitud; es importante que
\NuevaLongitud no sea ni un comando ni una longitud LATEX ya existentes,
que crea una nueva longitud llamada

en cuyo caso obtendramos un mensaje de error. Por defecto, las nuevas


longitudes son creadas con un valor inicial 0.0 pt.
Para la gestin 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 (depth) de un objeto, asignando el valor resultante a la longitud

fundidad

\NombreLongitud.

Ejemplos
Imaginemos que queremos medir la longitud asociada al comando

\quad.

Para ello podemos denir una nueva longitud

\newlength{\longi}
a continuacin, asociamos a
comando

\quad

\longi

la anchura del espacio asociado al

\settowidth{\longi}{\quad}
tras lo cual, el comando

\the\longi

muestra el valor 9.99756pt.

Ahora creamos otra longitud

\newlength{\longitud}
2 Distancia

por debajo de la lnea de base.

134

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

46.44038pt, su altura es 9.91672pt

y su profundidad es 2.80008pt.
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

Longitudes elsticas

fil

En este apartado describiremos dos unidades de longitud elsticas:

fil

fill

AT Xutiliza para introducir espacios de longitud variable. Ambas proque L


E
porcionan dos diferentes grados de elasticidad innita; fil es una unidad
de longitud elstica innitamente ms grande que cualquier longitud rgida, mientras que

fill

es innitamente ms grande que

fil

(y por tanto,

que cualquier longitud rgida).


Basados en stas unidades de longitud, existe una variedad de comandos

135

\fill

Es una longitud, de valor

0pt plus 1fill.

\stretch{n} Es una longitud de valor 0pt y holgura


n de unidades fill (entero o decimal). As, \fill
\stretch{1}.
ro

un nmeequivale a

De ste modo, los comandos \hfill y \vfill equivalen a \hspace{\fill}


\vspace{\fill}, respectivamente. La utilidad del comando \stretch{n}

est en la posibilidad de separar objetos con espacios proporcionales a diversas cantidades. Vase 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
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
distancia a los mrgenes:
T1

T2

(para imprimir la barra vertical de referencia al comienzo y nal de

\vrule; podemos
\mbox{} o \null).

lnea en el ejemplo anterior, hemos utilizado el comando


poner una marca en blanco con los comandos

\hfill
\hfil

\vfill
\vfil

(ya descritos).

Anlogos a los anteriores, pero empleando para la

elasticidad una unidad

fil

en lugar de

fill.

El siguiente ejemplo ilustra la diferencia entre las unidades

\noindent A \hfil B \hfil C \\


D \hfill E \hfill F \par

fil y fill

136

Porqu cambian las posiciones de B y C en la primera lnea? La res-

AT X introduce un espacio
puesta est en que, antes de cortar una lnea, L
E
de elasticidad variable, a n de evitar que las lneas cortas se estiren hacia
la derecha. ste espacio se controla a travs de la longitud
que por defecto tiene el valor

0pt plus 1fil.

\parfillskip,

Por tanto, en el primer

\hfil. En el
\hfill corresponde a un grado de

ejemplo se equilibran los espacios asociados a tres comandos


segundo caso, esto no sucede, dado que
elasticidad innitamente ms grande.

\hfilneg y \vfilneg Equivalen, respectivamente, a


\hspace{0pt plus -1fil} y a \vspace{0pt plus -1fil}, y permiten cancelar el efecto de los comandos \hfil y \vfil; por ejemplo
\parindent=0pt \parfillskip=0pt
\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 intervie\leftline, \rightline y

ne en la denicin de los comandos

\centerline.

\vss Anlogo vertical, que equivale a


\vspace{0pt plus 1fil minus 1fil}.
Los siguientes comandos (algunos de ellos ya mencionados anteriormente) tienen un efecto similar a

\hfill,

con la diferencia de que en el

espacio intermedio introducen diversos smbolos de extensin variable (en


direccin horizontal)

\hrulefill

Raya

A\hrulefill B\hrulefill C
A

137

\dotfill

Raya

A\dotfill B\dotfill C
A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C

downbracefill y \upbracefill Llaves hacia abajo o hacia arriba, respectivamente.

\leftarrowfill

\rightarrowfill

Flechas a izquierda y de-

recha, respectivamente.

\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{}\\
A

}|

{z
F

Antes de continuar es preciso reasignar los valores por defecto a:

\parfillskip

(para evitar que las lneas cortas, como la ltima de este prrafo, se estiren
a

la

derecha),

esto

es

\parfillskip = 0pt plus 1fil


y tambin a
cualquier

\parindent (para que se sangre automticamnete el inicio de


prrafo),

esto

es

138

\parindent=18pt
Finalmente, describiremos los comandos

\rlap{Objeto} y \llap{Objeto};
0pt (por lo que

respectivamente, colocan Objeto en una caja de anchura

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 Programacin con TEX


5.1 Otro modo de denir comandos
Anteriormente hemos visto cmo denir nuevos comandos mediante la utilizacin de los comandos tipo

\newcommand

AT X. Existe un modo
de L
E

alternativo, empleando comandos de ms bajo nivel de TEX (de hecho,


AT X). Para ello existe el
ste es el modo estndar 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 denicin. Por ejemplo,
denamos

\def\ecuacion#1#2{\ensuremath{#1_1^2+#1_2^2+\cdots+#1_#2^2=1}}
\ecuacion{z}{5} produce z12 + z22 + . . . + z52 . Ntese el uso
del comando \ensuremath{Formula}, que tiene como resultado asegurar
que la expresin Formula se ejecuta dentro del modo matemtico (por lo
cual, no es necesario abrir y cerrar signos $ antes y despus del comando
\ecuacion).
El comando \def, a diferencia del \newcommand, permite elegir los delimitadores de los argumentos (que con \newcommand siempre deben ser

tras lo cual,

139

llaves, o corchetes para los argumentos optativos). Adems, es incluso posible prescindir de las llaves al escribir los argumentos del comando; por
ejemplo, en el caso anterior podramos haber escrito
mismo resultado que

\ecuacion{z}{5}:

\ecuacion z5 con el

TEX lee secuencialmente los argumentos tras el nombre del comando. Para elegir delimitadores especiales
entre los argumentos, simplemente los incluimos entre
ejemplo, redenimos

\ecuacion

#1, #2,... #n. Por

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
2
2
con  :. Ahora debemos escribir \ecuacion z;5: para obtener z1 + z2 +
2
. . . + z5 .

5.2 Deniciones globales


\newcommand, \providecommand o \def,
\renewcommand) son locales ; es decir, si estn denidos

Todos los comandos creados con


(o redenidos con

dentro de un grupo, su accin estar restringida a se grupo. En el ejemplo siguiente se ve cmo la redenicin 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

\global\def\NuevoComando#1...#9{Definicion}
\gdef\NuevoComando#1...#9{Definicion}
\global a la denicin, o bien
\gdef. El comando \global tambin puede usarse para

es decir, o bien anteponemos el comando


usamos el comando

hacer globales otro tipo de asignaciones de tipo local, como por ejemplo
las modicaciones de longitudes (\setlength y

\addtolength).

140

\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 funcin 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 independiente 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


independencia de redeniciones posteriores de comandos. Se utiliza con la
sintaxis

\let\NuevoComando=\ComandoExistente
que puede usarse tambin en caso de comandos con argumentos (cuidando de que el comando antiguo y su copia tengan el mismo nmero de
argumentos). El ejemplo siguiente ilustra el funcionamiento de

\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

\let

141

Uno: 1
Dos: 11
Uno: uno
Dos: unouno

DOS: 11

5.4 Manipulacin de contadores y longitudes a travs de TEX


Veamos ahora cmo se trabaja con contadores y longitudes desde el punto
de vista de TEX. Se pueden realizar operaciones con tres tipos de magnitudes

Contadores:
comando

Corresponden a registros tipo

\newcount\NuevoContador;

count,

y se denen con el

el registro puede almacenar

nmeros enteros entre -214783647 y +214783647.

Longitudes rgidas:
con el comando

Corresponden a registros tipo

\newdimen\NuevaLongitud.

Longitudes elsticas:

dimen,

y se denen

Existen dos tipos de registro

skip: se denen con \newskip\NuevaLongitud\verb.


muskip: anlogo de longitud elstica, que se utiliza slo en el
modo matemtico; se denen con \newmuskip\NuevaLongitud.
Existen comandos para realizar las cuatro operaciones aritmticas bsicas (suma, resta, multiplicacin y divisin) con todos los registros anteriores (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 nmero entero, 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

tambin de-

be de ser un entero. En el caso de un contador, se almacenar la parte


entera de la divisin; en el caso de longitudes, stas se transforman

sp (la ms pequea de TEX; 1 sp = 65536


y el resultado se redondea a un mltiplo entero de sta unidad.

primero a unidades

pt)

142

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
45.0pt plus 12.0ll minus 9.0ll
22.5pt plus 6.0ll minus 4.5ll
En el caso de longitudes rgidas, existe un forma alternativa de multi-

\Longitud1=Numero\Longitud2 (donde \Longitud1


\Longitud2 pueden ser la misma). Este procedimiento de multiplicacin

plicarlas por un factor:


y

tiene la ventaja de que pueden utilizarse factores no enteros (0.5, 1.25,


etc...). En el caso de que

\Longitud1

sea elstica, la accin anterior la

transforma automticamente en una rgida; 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 cmo manejar contadores, deniendo un


nuevo comando

\hora que calcula la hora, a partir del contador \time, que

almacena el nmero de minutos despus 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

143

\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
profundidad), medidas con respecto a un punto de referencia. Por ejemplo,
las lneas se componen alineando las cajas asociadas a cada carcter, segn
la lnea base. Entonces, cada lnea se convierte a su vez en una caja, que se
alinea (ahora verticalmente), y as sucesivamente hasta que se construye
la pgina.
Existen tres modos fundamentales de trabajo de TEX, a la hora de
componer cajas

Modo horizontal:

TEX agrupa cajas alinandolas horizontalmente unas


junto a otras, a lo largo de la lnea base, creando una nueva caja
de anchura 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 caracterstico cuando se construyen prrafos;
se alinean caracteres horizontalmente, y despus se va cortando
para formar lneas de la misma anchura. TEX estira o contrae
los espacios para optimizar el resultado nal.
Restringido: En este modo, slo se alinean las cajas horizontalmente, sin posibilidad de dividir la caja resultante en cajas ms
pequeas. Dentro de este modo, no se entienden los comandos
asociados a saltos de lnea, prrafo, 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

144

Ordinario: Es el modo por defecto, en el cual TEX va recogiendo


todas las cajas creadas en los modos horizontal y matemtico,
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).

Modo matemtico:

Se abre para escribir smbolos o frmulas matem-

ticas, existe en dos variantes, ordinario (o tipo prrafo) y resaltado


(para frmulas centradas y resaltadas), las cuales ya se han descrito
en la seccin 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 ms 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 ms que
de L
E

\hbox

\def\mbox#1{\leavevmode\hbox{#1}}
(el comando

\leavevmode

se asegura de salir del modo vertical, si

estuvisemos dentro de l).

\hbox tiene una anchura natural depenMaterial incluido en ella. Al igual que ocurra con

Cada caja creada mediante


diente de la anchura del
el comando

\makebox,

es posible cambiar dicha anchura a nuestro gusto

\hbox to Ancho{Material}

Crea una caja de anchura

Ancho

y co-

loca en ella el material de izquierda a derecha. Si la anchura del


material es menor que

Ancho, se estirarn los espacios elsticos para

ocupar todo el espacio disponible, mientras que si es mayor, el material sobresaldr de la caja (con lo que se sobreescribir en texto que
venga a continuacin); vase el siguiente ejemplo (donde se aade

\fbox

a n de remarcar las cajas

145

\parindent 0pt Normal:


\fbox{\hbox{caja ejemplo}}
(texto) \\ Estiramos:
\fbox{\hbox to 3cm{caja ejemplo}}
(texto) \\ Contraemos: \fbox{\hbox
to 1cm{caja ejemplo}} (texto)
Normal:

caja ejemplo

Estiramos:

caja

Contraemos:

(texto)
ejemplo

(texto)

caja ejemplo
(texto)

\hbox spread Ancho{Material} Es anlogo al anterior, con la diferencia 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

Contraemos:

ejemplo

(texto)

caja ejemplo
(texto)

Con lo ya visto, podemos ahora entender la denicin de los comandos

\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}}
\hss equivale a \hspace{0pt plus
\hsize almacena la anchura del texto:
\textwidth, aunque puede modicarse a volun-

donde recordemos que el comando

1fil minus 1fil};

la longitud

normalmente equivale a
tad.

146

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 ms alto,
o si contiene el comando

\vrule (explicado ms adelante); en ambos casos

la anchura ser la de una lnea 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
% Ntese 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

\vbox to Alto{Material}

\vbox spread Alto{Material}


\hbox (cambiando Ancho

cuyo signicado es idntico a lo ya visto para


por

Alto).

Es interesante remarcar la exibilidad y potencia del comando

\vbox

de TEX; a diferencia de lo que ocurre con \hbox, no existen realmente


AT X con tanta capacidad; por ejemplo, \parbox o el entorno
comandos en L
E

147

minipage permiten jar la altura de la caja, pero adems requieren jar


su anchura, lo cual puede ser un inconveniente.
El comando

\vbox to Alto{Material} alinea la lnea base de la caja

global con la lnea base de la ltima caja (es decir, la inferior) incluida en
la caja vertical. Existen tambin los comandos

\vtop to Ancho{Material}

\vcenter to Ancho{Material}

que alinean, respectivamente, la parte superior y central de la caja total


con la lnea base (ATENCIN:

\vcenter slo se puede emplear dentro del

modo matemtico).

\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 1

Texto 2
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 horizontal, podemos desplazar cajas verticalmente con

\raise Desplazamiento o \lower Desplazamiento


Desplazamiento es cualquier longitud. De hecho, stos dos comanson esencialmente el mismo, ya que \raise D = \lower -D. Al usar

donde
dos

stos comandos, la lnea base queda inalterada, aunque la altura y profundidad pueden cambiar. La nueva altura y profundidad de la caja se
calculan dependiendo de los desplazamientos. Vase el siguiente ejemplo,
donde se remarca la lnea 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

148

Texto de prueba; Texto de prueba; Texto de prueba


pepe
pepe

pepe
pepe

andres jaime

pepe

pepe

andres

jaime

Texto de prueba; Texto de prueba; Texto de prueba

El comando

\kern

Longitud se utiliza con carcter general para des-

plazar cajas una cantidad Longitud (que puede ser negativa). La direccin
del desplazamiento, horizontal o vertical, depende que en que modo est

TEX trabajando; en el modo horizontal (en una caja \hbox) el desplazamiento es horizontal, mientras que en el modo vertical (en una caja \vbox)
el desplazamiento es vertical. Veamos como ejemplo el cdigo 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

\moveright Desplazamiento

Es interesante hacer notar que la anchura de la caja tras los desplazamientos slo se modica con desplazamientos a la derecha, y no a la
izquierda: la anchura se calcula comenzando en el punto de referencia y
extendindose hacia la derecha hasta la parte derecha de la componente
ms alejada; por ejemplo (ntese cmo ahora se utiliza
car las cajas, en vez de

\fbox,

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

E
X

E
X

E
X

\frame para remar\fboxsep

que dejaba un pequeo espacio

149

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, ms general, de manipularlas a travs de TEX. Podemos

\newbox\NombreCaja, tras lo cual


\NombreCaja con

declarar una caja nueva con el comando


se almacena una caja en la variable

\setbox\NombreCaja=Caja
A diferencia del comando
con el comando

\setbox

\sbox,

que slo maneja cajas horizontales,

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. Estn numerados de 0 a 255, estando
el nmero 255 reservado para la caja de la pgina. Podramos entonces,
en vez de declarar primero
cajas numeradas con

\setbox1=Caja1

NombreCaja

con

\newbox,

\setbox2=Caja2

crear directamente
etc...

(tras lo cual, para todos los comandos descritos a continuacin, se debera


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
Por ejemplo
duce

produce

Usa el contenido de la caja sin borrarlo.

\setbox1=\hbox{A} \fbox{\box1} \fbox{\box1} pro\setbox1=\hbox{A} \fbox{\copy1} \fbox{\copy1}

, mientras que
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 asignamos \setbox\NuevaCaja=\hbox{A B C} tras lo cual, \the\wd\NuevaCaja
Vase el siguiente ejemplo; denimos:

produce 28.46527pt (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 anlogos a

\box

\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 vacan


o no la caja tras ser usada

150

\unhbox\NombreCaja
\unhcopy\NombreCaja

\unvbox\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}
\frame{\copy2}
\setbox3=\hbox{A B}
\setbox4=\hbox to 2.0\wd3{\copy3}
\frame{\copy4}
A

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 horizontales, \hrule, y las verticales, \vrule. Para cada una de ellas se pueden
especicar tres dimensiones:

Anchura, Altura

Profundidad

\hrule height Altura width Anchura depth Profundidad


\vrule height Altura width Anchura depth Profundidad
puede omitirse cualquiera de estos tres parmetros, 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 tamao de la caja que la contiene.
La diferencia esencial entre

\hrule

\vrule

reside en que

\hrule

es

material vertical, por lo que slo puede ser utilizado entre prrafos o dentro
de una caja vertical

\vbox, mientras que \vrule es material horizontal, por

lo que slo puede utilizarse dentro de un prrafo o de una caja horizontal

\hbox.

151

\hbox{Ejemplo \vrule width 2pt\vbox to


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
vertical

Ejemplo
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 Repeticin de objetos
Veremos ahora otro modo de repetir objetos, ligeramente diferente del comando

\multiput

ya visto. En vez de proporcionar el nmero de objetos

a repetir, puede interesarnos llenar un cierto espacio, de longitud ja o variable, 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 elsticas). Se puede reemplazar

\hskip 1fil
ejemplo

por simplemente

\hfil,

\hskip 1fill

por

\hfill.

Por

152

\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

\leaders, sobre todo si estamos utilizando


\null
equivalentes seran \mbox{} o \kern0pt).

entre los que acta el comando

longitudes elsticas. Es por eso que se utiliza en el ejemplo anterior


(otras posibilidades

En el caso de que el objeto a repetir no sea un mltiplo entero del


tamao de la caja que contiene a las copias del objeto, aparecer cierta asincrona. 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}}
NNNNNNNNNN
NNNNNNNNNN
NNNNNNNNNN
De igual manera a lo ya visto, se pueden repetir objetos en la direccin vertical; para ello, simplemente se cambia el segundo argumen-

\leaders
Longitud).

to del comando
(\vskip

de horizontal (\hskip

Longitud)

a vertical

153

8 Sistematizando tareas
Veremos ahora una serie de comandos tiles para sistematizar tareas; imaginemos que cada vez que se inicia un prrafo, frmula, 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-

rrafo, se ejecutan Comandos. Veamos un ejemplo, en el que denimos


un nuevo contador prrafo, y para cada prrafo, se le pone como ttulo Prrafo n en negrita y centrado

\parindent 0pt \parskip 10pt


\newcounter{parrafo} \setcounter{parrafo}{0}
\everypar{\addtocounter{parrafo}{1}
\centerline{\bfseries Prrafo %
\theparrafo}\\[1mm]}
Esto es un primer prrafo de
ejemplo; en el cdigo anterior...\par
...se puede ver cmo incrementamos
el valor del contador \texttt{parrafo
al empezar cada prrafo...\par ...y l
recuperamos, para imprimirlo, con el
comando \verb@\theparrafo@.

Prrafo 1
Esto es un primer prrafo de ejemplo; en el cdigo anterior...

Prrafo 2
...se puede ver cmo incrementamos el valor del contador

parrafo al

empezar cada prrafo...

Prrafo 3
...y lo recuperamos, para imprimirlo, con el comando

\everymath{Comandos}

Anlogo a

\everypar;

\theparrafo.

se ejecutan los co-

mandos cada vez que entremos en modo matemtico ordinario (o


modo texto).

\everydisplay{Comandos}

En este caso, los comandos se ejecutan

154

cada vez que se abre el modo matemtico resaltado. Imaginemos que


queremos que todas las frmulas resaltadas se escriban en color rojo;
para conseguirlo, simplemente se puede declarar

\color{red}}.

\everyhbox{Comandos}

\everyvbox{Comandos}

\everydisplay{

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. Adems 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 funcin del valor de una variable lgica; su forma general es

IF <Test> [Instrucciones A] ELSE [Instrucciones B] END IF


lo cual signica que, de cumplirse la condicin

<Test>,

se ejecutarn las

instrucciones  A, y de no cumplirse, las instrucciones  B. En lenguaje


TEX, el condicional se escribe

\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, correspondera a una versin de negacin del condicional).

\fi se asume
\if. A continuacin describiremos al-

Los condicionales pueden anidarse sin problemas; cada


que corresponde con el ms reciente

gunos de los 17 condicionales que estn denidos en TEX, correspondientes


a diversos formatos de la condicin <Test>

\ifnum Numero1 Relacion Numero2


Se utiliza para comparar nmeros enteros, con
> =. Como ejemplo, denimos un contador

Relacion igual a <,


\cuatrodigit, que

imprime nmeros es formato de cuatro dgitos, con independencia


de su tamao

155

\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 nmero entero es impar. En el caso de
que queramos analizar el valor de un determinado contador, recorde-

Numero por \value{NombreContador}, si


AT X. Por contra,
estamos trabajando con un contador denido en L
E
si el contador ha sido denido en TEX(con \newcount), podemos re-

mos que debemos sustituir

cuperar el valor numrico con

\number\NombreContador.

\the\NombreContador

Por ejemplo, compilando

Esta pgina es \iffodd\value{page} impar \else par\fi


obtendremos Esta pgina es impar, si es impar, o Esta pgina es
par si es par.

\ifdim Dimension1 Relacion Dimension2


se utiliza para comparar dos longitudes. Como ejemplo, vamos a
construir un comando que crea una caja enmarcada con un texto
en tamao

\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 prrafo 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

156

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 comprarse un
coche nuevo porque el
antiguo se les ha quedado viejo

\ifhmode

\ifvmode

\ifmmode

sirven para comprobar, respectivamente, si estamos dentro del modo


horizontal, vertical, o matemtico (en cada caso, no se distingue entre
los diferentes sub-modos). Por ejemplo, el comando

AT X est denido como


L
E

\ensuremath de

\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

n=0

Numero

(que puede, por ejemplo, ser un contador);

n=1 las, segundas,


M; opcionalmente podemos colocar ms
instrucciones despus de \else, que se ejecutarn si Numero es menor
que 0 o mayor que M. Vase el siguiente ejemplo, que traduce nmeros

si

se ejecutaran las primeras instrucciones, si

y as sucesivamente hasta

naturales a notacin 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}

157

Comando

Resultado

\hexadec{7}

\hexadec{12}

\ifx Argumento1Argumento2
compara dos argumentos entre s, siendo verdadero si son iguales y
falso si son distintos.

Argumento1 y Argumento2 pueden ser caracte-

res, cajas, comandos... Es importante puntualizar que, al comparar


cadenas de caracteres o cajas, es necesario con anterioridad incluir
tales contenidos en sendos comandos, que sern despus comparados.
Por ejemplo

\def\a{Hola} \def\b{Hola} \def\c{hola}


\def\d{H} \def\e{\hbox{hola}}
\def\f{\hbox{hola}}
Comparaci\'{o}n 1:
\ifx AA iguales \else distintos \fi\\
% (caracteres aislados son comparables)
Comparacin 2:
\ifx \a\b iguales \else distintos \fi\\
Comparacin 3:
\ifx \a\c iguales \else distintos \fi\\
Comparacin 4:
\ifx H\d iguales \else distintos \fi\\
Comparacin 5:
\ifx \c\e iguales \else distintos \fi\\
Comparacin 6:
\ifx \e\f iguales \else distintos \fi\\
Comparacin 1: iguales
Comparacin 2: iguales
Comparacin 3: distintos
Comparacin 4: distintos
Comparacin 5: distintos
Comparacin 6: iguales

AT X tambin proporciona algunos condicionales predenidos, que es


L
E
bueno conocer

158

\if@twoside

\if@twocolumn

son verdaderos si se est procesando el documento con las opciones

twoside

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 utiliAT X en los comandos que utilizan argumentos opcionales,
zado en L
E
caracterizados por ir entre corchetes. Veamos un ejemplo de cmo
denir un comando con dos argumentos, uno de ellos optativo; queremos recuadrar un texto dado con una lnea de grosor variable,

pt

0.4

por defecto

\def\mirecuadro[#1]#2{{\fboxrule#1\fbox{#2}}}
\makeatletter
\def\recuadro{\@ifnextchar[{\mirecuadro}{
\mirecuadro[0.4pt]}}
\makeatother
Tras esto,

\recuadro{Prueba}

resultar en

si queremos cambiar el grosor de lnea a

Prueba , mientras que

1pt,

deberemos escribir

\recuadro[1pt]{Prueba} Prueba . Por qu los comandos


\makeatletter y \makeatother? La razn est en que, por defecto, est prohibido utilizar el smbolo @ 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 evitar coincidencias casuales con comandos ya denidos. El comando

\makeatletter levanta esta prohibicin,


\makeatother la vuelve a recuperar.

mientras que el comando

Podemos utilizar lo aprendido en el ejemplo anterior para construir


comandos ms complicados. Por ejemplo, procedamos a modicar el comando

\recuadro

(renombrndolo a

\Recuadro)

para que ahora admita

dos argumentos optativos, segn la sintaxis

\Recuadro[Grosor](Color){Texto}
siendo

Grosor la anchura del recuadro (0.4pt por defecto), y Color su co\@ifnextchar

lor (rojo por defecto). Utilizando recursivamente el condicional


se obtiene el resultado deseado.

\makeatletter

159

\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
\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
donde Nombre corresponder al nombre del nuevo condicional. El comando
\newif se encarga de denir tres nuevos comandos

\Nombretrue

Asigna a la variable lgica

\Nombrefalse

Nombre

Asigna a la variable lgica

\ifNombre... \else... \fi

el valor verdadero.

Nombre

el valor falso.

Nuevo condicional, que ejecuta una

accin u otra segn el valor que se le haya asignado anteriormente a


la variable lgica

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,
dependiendo del valor de una variable lgica

\newbox\boxocultar
\newif\ifocultar
\newenvironment{ocultar}
{\setbox\boxocultar\vbox\bgroup}
{\egroup\ifocultar\else\par\unvbox\boxocultar\fi}
tras esta denicin, si se coloca el comando

\ocultartrue,

todo el texto

dentro de entornos ocultar que estn a continuacin de este comando no se


ver en el documento nal; en cambio, sustituyndolo por

\ocultarfalse,

se reestablecer el texto dentro de tales entornos, por ejemplo

160

\ocultartrue \begin{ocultar}
texto de prueba que no se ve
\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 inclusin de
notas y comentarios que puede convenirnos suprimir en el documento nal;
aadir un comando

\ocultartrue es ms rpido que comentar lneas una

por una. Merece la pena analizar un poco la denicin del nuevo entorno
1.

\newbox\boxocultar Dene una nueva caja para almacenar el texto


oculto.

2.

\setbox\boxocultar\vbox\bgroup
macena en \boxocultar; ntese el

Abre una caja vertical y la alempleo del comando

\bgroup:

ste comando es anlogo a  {, es decir, es un delimitador de grupo. La sutileza radica en que, de usar directamente  {, habra un
conicto con la sintaxis del comando
3.

\newenvironment

{\egroup\ifocultar\else\par\unvbox\boxocultar\fi} Tras haber abierto la caja vertical, y haberse rellenado con todo el texto
dentro del entorno, se cierra con

\egroup (anlogo 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

ParteB

son conjuntos de comandos, y

condicional, sin la correspondiente partcula

ParteA;

si la condicin es verdadera, procesa

\fi. TEX
ParteB, y

\if

es cualquier

procesa primero
repite el proceso

ParteA; si no, inmediatamente se sale del bucle.


Denamos como ejemplo un comando que imprima los primeros n nmeros
comenzando de nuevo por
naturales

161

\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 estn predenidos bucles asociados a condicionales especEn L


E
cos, tiles para manejar nmeros y longitudes

\@whilenum{TestNum} \do {Accion}


\@whiledim{TestLong} \do {Accion}
En ellos, se evala la relacin numrica

TestNum

TestLong

(compa-

racin de nmeros o longitudes, respectivamente); mientras sea verdadera


se procesarn las instrucciones en

Accion,

terminando el bucle en el mo-

mento en que la relacin sea falsa. El siguiente ejemplo calcula la sucesin


de todos los nmeros 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}
Los nmeros 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,
Tambin es posible denir bucles en los que la condicin de control sea
un condicional

\ifNombre

denido en TEX con

\newif

\@whilesw\ifNombre\fi{Accion}
con lo que TEX procesar los comandos de
sea falso.

\ifNombre

Accion hasta que el condicional

162

Finalmente, se pueden tambin 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 travs de TEX un comando \longitud{Palabra} para contar


el nmero 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

\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

Juan

Andrs

Antonio

163

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

Nmeros 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 nmeros

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,

164

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, 1093,
1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187,
1193, 1201, 1213, 1217, 1223.

CAPTULO III

LA CLASE FCUNP

1 Introduccin
Cualquier estudiante de pregrado de la Facultad de Ciencias de la Universidad Nacional de Piura (FC-UNP) que desea redactar su tesis se encuentra
con el inconveniente de generar, en formato adecuado, las primeras cinco
pginas de la misma; as como, las pginas de la lista de contenidos, lista de guras, lista de tablas, anexos, apndices y resumen. Adems de la
carencia de un adecuado editor de frmulas matemticas que son de uso
comn 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. Adicionalmente, 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 misma,

AT X. De este modo, el alumno que utilice la clase


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 tendrn un formato nico y de nivel
profesional.

2 Cmo invocar la clase FcUnp


La clase

Fc Unp es una modicacin de la clase estndar book de LATEX.

Por tanto, es posible que el estudiante utilice todos los comandos de book

166

en la preparacin del cuerpo de la tesis. La clase

Fc Unp

se invoca reem-

plazando book por fcunp en la primera lnea 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, nombres de patrocinadores, dedicatorias, etc.

3.2 Comandos para ingresar datos


1.

\school{<n >}
1 y 5, incluidos,
n = 1 para referirse

Permite ingresar un nmero entero positivo entre


para identicar la Escuela Profesional. Admite

a la Escuela de Biologa, n = 2 para referirse a la Escuela de Fsica,


n = 3 para referirse a la Escuela de Matemtica, n = 4 para referirse
a la Escuela de Electrnica n = 5 para referirse a la Escuela de
Estadstica.
Cabe mencionar que de acuerdo al nmero ingresado se obtendr
automticamente la primera primera pgina (cubierta) en el color
asignado a la respectiva escuela.
2.

\title{<Ttulo

de la tesis >}

Permite ingresar el ttulo de la tesis.


3.

\author{<Autor

de la tesis >}

Permite ingresar el nombre del autor de la tesis. En caso de ser


dos autores los nombres de los mismos debern ir separados con el
comando
4.

\and.

\sponsor{<Patrocinador >}
Permite ingresar el nombre del patrocinador de la tesis. En caso de
ser dos patrocinadores los nombres de los mismos debern ir separados con el comando

\and.

167

5.

\jury{<Miembros

del Jurado >}

Permite ingresar los nombres de los miembros del Jurado de la tesis,


los mismos que se separarn con el comando
6.

\and.

\dedication{<Dedicatoria >}
Permite ingresar la dedicatoria del autor. En caso de ser dos autores
las dedicatorias de los mismos debern ir separadas con el comando

\and.
7.

\acknowledgments{<Agradecimientos >}
Permite ingresar los agradecimientos del autor, los mismos que se
separarn con el comando

8.

\and.

\resumen{<Resumen >}
Permite ingresar el resumen de la tesis.

9.

\palabrasclave{<Palabras

clave >}

Permite ingresar las palabras clave.


10.

\abstract{<Resumen

en ingls >}

Permite ingresar el resumen en idioma ingls.


11.

\keywords{<Palabras

clave en ingls >}

Permite ingresar las palabras clave en idioma ingls.

3.3 Comandos para generar pginas


1.

\makecover
Permite generar la portada.

2.

\maketitle
Permite generar la pgina de ttulo.

3.

\makesignature
Permite generar la pgina de rmas.

4.

\makededication
Permite generar la pgina de la(s) dedicatoria(s).

5.

\makeacknowledgments
Permite generar la pgina de los agradecimientos.

168

3.4 Otros comandos


1.

\frontmatter
Apertura de la tesis. La numeracin de las pginas ubicadas despus
de este comando se realiza con nmeros romanos.

2.

\mainmatter
Parte central de la tesis. Aqu tambin se ubican las conclusiones
y recomendaciones mediante el comando
con el comando

3.

\annex

\conclusions, los anexos


\appendix.

y los apndices con el comando

\backmatter
Cierre de la tesis.

4 Paquetes incorporados
La clase

Fc Unp incorpora los siguientes paquetes estndar de LATEX:

geometry

Este paquete se utiliza para establecer los mrgenes de pgina

de la Tesis.

babel

Este paquete se utiliza activando la opcin

spanish con la nalidad

de conseguir una adecuada particin silbica de las palabras.

inputenc

Este paquete se utiliza activando la opcin

latin1

con la -

nalidad de permitir el uso y la compilacin de caracteres que no


corresponden al cdigo ASCII.

amsthm

Este paquete se utiliza para darle un formato adecuado a las de-

niciones, teoremas, corolarios, lemas, proposiciones, etc. y tambin


a las demostraciones.

graphicx

Este formato se utiliza para poder insertar grcos y es preciso

incluirlo en la clase pues de otra forma no se podra incluir el logo


de la UNP en la cubierta.

epstopdf

Este paquete se utiliza para convertir los grcos

AT X.
y poder as generar el archivo PDFL
E

hyperrefn

.eps

.pdf

Este paquete constituye una ligera modicacin del paquete

estndar

hyperref

y se utiliza para generar los hipervnculos del

ndice general, de las referencias, de las direcciones web, as como


tambin para generar los marcadores.

169

5 Un ejemplo especco
El ejemplo que se presenta en esta seccin permite observar el cdigo
elemental de una tesis, as como algunas pginas importantes en formato

dvi

(ver Figs. 3.1, 3.2, 3.3, 3.4 y 3.5), generadas con la clase

Fc Unp .

AT X
Adems en las guras 3.6 y 3.7 se aprecia la salida obtenida por PDFL
E
con el paquete hyperrefn que permite generar hipervnculos y marcadores
en forma automtica.
La lnea 1 del cdigo anexado invoca la clase

Fc Unp . La lnea 3 invoca

tres paquetes, de la American Mathematical Society, para trabajar con


matemtica. Las lneas 517, muestran el correcto uso de los comandos

para ingresar datos y del comando para separar datos ingresados ; mientras
que las lneas 2327, 77 y 78 muestran el correcto uso de los comandos

para generar pginas. Las lneas 21, 35 y 67, separan la apertura, la parte
central y el cierre de la tesis y las lneas 53, 60 y 64 indican el inicio de las
conclusiones (y recomendaciones), los anexos y apndices, respectivamente.
El resto de lneas terminan de completar el cuerpo del documento y son de

AT X generado con la clase estndar


uso comn en cualquier documento L
E
book.

Cdigo Anexado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

\documentclass{fcunp}
\usepackage{amssymb,amsmath,amsfonts}
\school{3}
\title{``Ttulo de la Tesis''}
\author{Primer Autor \and Segundo Autor}
\sponsor{Primer patrocinador \and Segundo patrocinador}
\jury{Presidente \and Secretario \and Vocal}
\dedication{Primera dedicatoria.\\\textit{Primer Autor} \and
Segunda dedicatoria.\\\textit{Segundo Autor}}
\acknowledgments{Primer agradecimiento. \and
Segundo agradecimiento.}
\resumen{Este es el resumen.}
\palabrasclave{Palabraclave1, palabraclave2.}
\abstract{This is the abstract.}
\keywords{Keyword1, keyword2.}

170

19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

\begin{document}
\frontmatter
\makecover
\maketitle
\makesignature
\makededication
\makeacknowledgments
\chapter{Prlogo}
ste es el prlogo.
\tableofcontents
\listoffigures
\chapter{Introduccin}
sta es la introduccin.
\mainmatter
\chapter{Este es el primer captulo}
Texto para el primer captulo.
\section{La primera seccin del primer captulo}
Texto para la primera seccin del primer captulo.
\begin{equation}ax^2+bx+c=0\,.\end{equation}
\chapter{Este es el segundo captulo}
\section{La primera seccin del segundo captulo}
Texto para la primera seccin del segundo captulo.
\begin{figure}
\centering
\includegraphics[scale=0.5]{img/unp.eps}
\caption{Mi primera figura.}
\end{figure}
\conclusions
\chapter{Conclusiones}
Aqu van las conclusiones.
\chapter{Recomendaciones}
Aqu van las recomendaciones.

171

59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

\annex
\chapter{Este es un anexo}
Texto para el anexo.
\appendix
\chapter{Este es un apndice}
Texto para el apndice.
\backmatter
\begin{thebibliography}{CM}
\bibitem{Buh}
Buhmann, M. D. (2004).
Radial Basis Functions: Theory and Implementations.
Cambridge University Press. United Kingdom.
\end{thebibliography}
\makeresumen
\makeabstract
\end{document}
Fin

Adicionalmente, el texto referente a las escuelas y al ttulo profesional,


as como el color de las primeras pginas, es modicado en forma auto-

\school{1} (Fig.
\school{2} (Fig. 3.8, derechaarriba), \school{4}
izquierdaabajo) y \school{5} (Fig. 3.8, derechaabajo).

mtica cuando el cdigo de la lnea 5 se sustituye por


3.8, izquierdaarriba),
(Fig. 3.8,

6 Obtencin 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

los archivos

ejemplo.tex, ejemplo.dvi

partir del primero con la clase

hiperrefn; as como
ejemplo.pdf (los dos ltimos

generados a

Fc Unp ) pueden obtenerse desde

https://sites.google.com/site/ripanaque/docencia

172

Fig. 3.1

Cuatro primeras pginas (dvi outputs) de la tesis formateadas

con la clase

Fc Unp .

173

Fig. 3.2

Los agradecimientos, el prlogo y el ndice general y (dvi outputs)

son automticamente formateadas con la clase

Fc Unp .

174

Fig. 3.3

El ndice de guras, la introduccin y las primeras pgimas de

los captulos I y II (dvi outputs) son automticamente formateadas con la


clase

Fc Unp .

175

Fig. 3.4

Las conclusiones, recomendaciones, anexos y apndices (dvi out-

puts) son automticamente formateadas con la clase

Fc Unp .

176

Fig. 3.5

La bibliografa, el resumen y el abstract (dvi outputs) tambin

son automticamente formateadas con la clase

Fc Unp .

177

Fig. 3.6

paquete

Salida formateada por

hyperrefn,

Fc Unp y producida por PDFLATEX con el

con sus respectivos marcadores.

178

Fig. 3.7

paquete

Salida formateada por

hyperrefn,

Fc Unp y producida por PDFLATEX con el

con sus respectivos hipervnculos y marcadores.

179

Fig. 3.8

Formato automtico por escuelas con

Fc Unp .

180

7 Cdigo 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
\ifcase\pdfoutput
\else
\@pdftextrue
\fi
\fi
\fi

181

%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}
\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}

182

\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
\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}

183

\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%
\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%

184

\or%2
LICENCIADO EN F\'{I}SICA%
\or%3
LICENCIADO EN MATEM\'{A}TICA%
\or%4
INGENIERO ELECTR\'{O}NICO Y DE TELECOMUNICACIONES%
\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%
}%

185

%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%
\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}

186

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
{\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}

187

\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}
\@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}}

188

\def\jurynumber{
\begingroup
\setcounter{@jur}{1}%
\def\and{\stepcounter{@jur}}%
\ocultartrue%
\begin{ocultar}
\@jury
\end{ocultar}
\endgroup}
\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}

189

\centering
{\bf\large UNIVERSIDAD NACIONAL DE PIURA
\par FACULTAD DE CIENCIAS}
\vskip 1em
{\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}
}
%Fin

190

%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
\def\acknowledgments#1{\gdef\@acknowledgments{#1}}
\def\acknowledgmentsname{
\begingroup%
\def\and{\item}
\begin{itemize}
\item\@acknowledgments
\end{itemize}
\endgroup}

191

%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
%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

192

\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]{}
\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{%

193

\cleardoublepage
\@mainmattertrue
\pagenumbering{arabic}}
\newcommand\backmatter{%
\cleardoublepage
\@mainmatterfalse}
\newcommand\chapter{\cleardoublepage
\thispagestyle{empty}%
\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}%

194

\fi
\chaptermark{#1}%
\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}
\def\@schapter#1{\if@pdftex
\stepcounter{aux}%
\pdfbookmark{#1}{\theaux}%
\fi
\@makeschapterhead{\MakeUppercase{#1}}%

195

\@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}%
{\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}

196

\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}
\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}

197

\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}}%
{\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}

198

\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}
\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@}
\setlength\belowcaptionskip{10\p@}
\long\def\@makecaption#1#2{%

199

\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}%
\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}

200

\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
\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%

201

\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@}
\@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

202

\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
%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

203

%Funciones matem\'{a}ticas especiales


\newcommand\abs[1]{\lvert#1\rvert}
\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'.

CONCLUSIONES

Este artculo presenta la clase

Fc Unp

que permite redactar la tesis de

pregrado de cualquier estudiante de la FC-UNP, ajustndose al formato


exigido por el Reglamento de Tesis de la mencionada Facultad. Los comandos 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. Adems, 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.

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
De modo similar, se sugiere elaborar una clase en L
E
la tesis de grado.

BIBLIOGRAFA

[1] Aranda,
mticas,

E.

CURSO

E.T.S.

DE

Ingenieros

LATEX.

Departamento

Industriales,

Universidad

de

Mate-

de

Casti-

http://www.wiphala.net/courses/tools/latex/
KAS_LATEX/2008-I (2008).
lla, La Mancha.

[2] Cubides, C., Rojas, A. y Pardo, C. CURSO BSICO 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] Mora,
FICOS

W.

Borbn,

LATEX.

A.

Escuela

EDICIN
de

DE

Matemtica

TEXTOS
Instituto

CIENTTecnolgi-

co de Costa Rica. http://www.cidse.itcr.ac.cr/revistamate/


HERRAmInternet/Latex/wmlatexrevista (2008).

[8] Mori, L. WRITING A THESIS WITH LATEX. The PracTex Journal (2008).
[9] Shultis, J. LATEX NOTES. Prentice Hall, New Jersey (1994).