Documentos de Académico
Documentos de Profesional
Documentos de Cultura
extraoficial
Enero 2023
https://latexref.xyz
Este documento es un manual de referencia extraoficial para LATEX, un sistema de preparación
de documentos, versión Enero 2023.
Este manual se tradujo originalmente de LATEX.HLP v1.0a en la Biblioteca de ayuda de VMS.
La versión previa a la traducción fue escrita por George D. Greenwade de la Universidad
Estatal Sam Houston. La versión 2.09 de LATEX fue escrita por Stephen Gilmore. La versión
LATEX2e fue adaptada desde esta por Torsten Martinsen. Karl Berry hizo más actualizaciones
y adiciones, y reconoce con gratitud que ha utilizado Hypertext Help con LATEX, de Sheldon
Green, y Resumen de comandos LATEX (para LATEX 2.09) por L. Botway y C. Biemesderfer
(publicado por los usuarios del Grupo TEX como TEXnicas número 10), como material
de referencia. También reconocemos con gratitud el material adicional que aparece en la
referencia de latex2e por Martin Herbert Dietze. (De estas referencias no se copió texto
directamente).
c 2010-2023 Nacho Pacheco — Traducción.
Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
2021, 2022 Karl Berry.
Copyright 1988, 1994, 2007 Stephen Gilmore.
Copyright 1994, 1995, 1996 Torsten Martinsen.
Se otorga permiso para hacer y distribuir copias textuales de este manual siempre y cuando,
se conserve en todas las copias este aviso de derechos de autor y este aviso de permiso.
Se otorga permiso para copiar y distribuir versiones modificadas de este manual bajo las
condiciones para la copia literal, siempre que la totalidad del trabajo derivado resultante se
distribuya bajo los términos de un aviso de permiso idéntico a este.
Se otorga permiso para copiar y distribuir traducciones de este manual a otro idioma, en las
condiciones anteriores para versiones modificadas.
i
Índice General
2 Descripción de LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Comenzar y terminar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Archivos de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Motores TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 Sintaxis del comando LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5 Entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 CTAN: La red integral de archivo TEX . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Clases de documentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 Opciones de la clase documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Paquetes adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Construcción de clase y paquete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.1 Estructura de clase y paquete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.2 Comandos class y package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Tipos de letra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1 paquete fontenc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1 \DeclareFontEncoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.2 \DeclareTextAccent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.3 \DeclareTextAccentDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.4 \DeclareTextCommand y \ProvideTextCommand. . . . . . . . . . . 20
4.1.5 \DeclareTextCommandDefault y
\ProvideTextCommandDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.6 \DeclareTextComposite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.7 \DeclareTextCompositeCommand . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.8 \DeclareTextSymbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.9 \DeclareTextSymbolDefault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.10 \LastDeclaredEncoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.11 \UseTextSymbol y \UseTextAccent . . . . . . . . . . . . . . . . . . . . . 23
4.2 Estilos de tipos de letra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Tama~ nos de los tipos de letra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.4 Comandos de bajo nivel del tipo de letra . . . . . . . . . . . . . . . . . . . . . . . 26
5 Composición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1 \onecolumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2 \twocolumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 \flushbottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4 \raggedbottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.5 Parámetros de composición de página . . . . . . . . . . . . . . . . . . . . . . . . . . 32
iii
6 Seccionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1 \part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2 \chapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 \section. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.4 \subsection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.5 \subsubsection, \paragraph, \subparagraph . . . . . . . . . . . . . . . . 47
6.6 \appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.7 \frontmatter, \mainmatter, \backmatter . . . . . . . . . . . . . . . . . . . . 48
6.8 \@startsection, composición tipográfica de
encabezados de unidades seccionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7 Referencias cruzadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.1 \label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.2 \pageref. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.3 \ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.4 paquete xr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8 Entornos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1 abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2 array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3 center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3.1 \centering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.4 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.5 displaymath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.6 document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.6.1 \AtBeginDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.6.2 \AtEndDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.7 enumerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.8 eqnarray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.9 equation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.10 figure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.11 filecontents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.12 flushleft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.12.1 \raggedright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.13 flushright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.13.1 \raggedleft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.14 itemize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.15 entorno letter: escribir cartas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.16 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.16.1 \item: Una entrada en una lista . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.16.2 trivlist: Una forma restringida de list . . . . . . . . . . . . . . . . 76
iv
8.17 math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.18 minipage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.19 picture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.19.1 \put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.19.2 \multiput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.19.3 \qbezier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.19.4 \graphpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.19.5 \line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.19.6 \linethickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.19.7 \thinlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.19.8 \thicklines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.19.9 \circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.19.10 \oval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.19.11 \shortstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.19.12 \vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.19.13 \makebox (picture) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.19.14 \framebox (picture) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.19.15 \frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.19.16 \dashbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.20 quotation y quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.21 tabbing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.22 table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.23 tabular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.23.1 \multicolumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8.23.2 \vline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.23.3 \cline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.23.4 \hline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.24 thebibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
8.24.1 \bibitem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.24.2 \cite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
8.24.3 \nocite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.24.4 Usar BibTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8.24.4.1 Mensajes de error BibTEX . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.25 theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.26 titlepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.27 verbatim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.27.1 \verb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.28 verse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
12.1 \newcommand y \renewcommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
12.1.1 Secuencia de control, palabra de
control y sı́mbolo de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
12.2 \providecommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
12.3 \makeatletter y \makeatother . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
12.4 \@ifstar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12.5 \newcounter: Asignar un contador . . . . . . . . . . . . . . . . . . . . . . . . . . 124
12.6 \newlength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
12.7 \newsavebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
12.8 \newenvironment y \renewenvironment . . . . . . . . . . . . . . . . . . . . 125
12.9 \newtheorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
12.10 \newfont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12.11 \protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
12.12 \ignorespaces e \ignorespacesafterend . . . . . . . . . . . . . . . . . 131
12.13 paquete xspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
13 Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
13.1 \alph \Alph \arabic \roman \Roman
\fnsymbol: Imprime contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
13.2 \usecounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
13.3 \value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
13.4 \setcounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
13.5 \addtocounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
13.6 \refstepcounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
13.7 \stepcounter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
13.8 \day, \month y \year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
vi
14 Longitudes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
14.1 Unidades de longitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
14.2 \setlength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
14.3 \addtolength. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
14.4 \settodepth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
14.5 \settoheight. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
14.6 \settowidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
14.7 \stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
14.8 Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17 Modos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
17.1 \ensuremath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
19 Espacios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
19.1 \enspace, \quad y \qquad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
19.2 \hspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
19.3 \hfill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
19.4 \hss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
19.5 \spacefactor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
19.5.1 \@. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
19.5.2 \frenchspacing y \nonfrenchspacing. . . . . . . . . . . . . . . . . 190
19.5.3 \normalsfcodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
19.6 Barra invertida-espacio, \ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
19.7 ~. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
19.8 \thinspace y \negthinspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
19.9 \/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
19.10 \hrulefill y \dotfill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
19.11 \bigskip, \medskip y \smallskip . . . . . . . . . . . . . . . . . . . . . . . . . 194
19.12 \bigbreak, \medbreak y \smallbreak . . . . . . . . . . . . . . . . . . . . . 195
19.13 \strut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
19.14 \vspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
19.15 \vfill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
19.16 \addvspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
20 Cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
20.1 \mbox y \makebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
20.2 \fbox y \framebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
20.3 \parbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
20.4 \raisebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
20.5 \sbox y \savebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
20.6 lrbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
20.7 \usebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
viii
21 Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
21.1 Opciones del paquete color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
21.2 Modelos de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
21.3 Comandos para color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
21.3.1 Definir colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
21.3.2 Texto en color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
21.3.3 Cuadros de colores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
21.3.4 Páginas coloreadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
22 Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
22.1 Opciones del paquete graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
22.2 Configuración del paquete graphics . . . . . . . . . . . . . . . . . . . . . . . . . 213
22.2.1 \graphicspath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
22.2.2 \DeclareGraphicsExtensions . . . . . . . . . . . . . . . . . . . . . . . . . 214
22.2.3 \DeclareGraphicsRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
22.3 Comandos para graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
22.3.1 \includegraphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
22.3.2 \rotatebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
22.3.3 \scalebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
22.3.4 \resizebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
26 Cartas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
26.1 \address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
26.2 \cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
26.3 \closing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
26.4 \encl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
26.5 \location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
26.6 \makelabels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
26.7 \name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
26.8 \opening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
26.9 \ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
26.10 \signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
26.11 \telephone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
27 Entrada/salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
27.1 \openin y \openout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
27.2 \read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
27.3 \typein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
27.4 \typeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
27.5 \write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
27.5.1 \write y seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
27.5.2 \message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
27.5.3 \wlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
27.5.4 \write18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
x
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
1
2 Descripción de LATEX
LATEX es un sistema para la composición tipográfica de documentos. Originalmente fue creado
por Leslie Lamport en 1984, pero ha sido mantenido por un grupo de voluntarios desde hace
muchos a~ nos (https://latex-project.org). Se utiliza ampliamente, en particular, pero
no exclusivamente, para matemáticas y documentos técnicos.
Un usuario de LATEX escribe un archivo de entrada que contiene texto para componer
junto con comandos intercalados. La codificación predeterminada para el texto es UTF-8 (a
partir de 2018). Los comandos especifican, por ejemplo, cómo se debe formatear el texto.
LATEX se implementa como un conjunto de las llamadas “macros” relacionadas que usa
Donald E. El programa de composición tipográfica TEX de Knuth o uno de sus derivados,
conocidos colectivamente como “motores”. Ası́, el usuario produce una salida, normalmente
PDF, entregando el archivo de entrada a un motor TEX. (Las siguientes secciones describen
todo esto con más detalle).
(El término LATEX también se usa a veces para indicar el lenguaje en el que el documento
de entrada está marcado, es decir, para especificar el conjunto de comandos disponible para
un usuario de LATEX.
El nombre LATEX es la abreviatura de “Lamport TEX”. Se pronuncia LAH-teck o LAY-teck,
o a veces LAY-tecks. Dentro de un documento, puedes producir el logo con \LaTeX. Cuando
el uso del logotipo no es sensible, como en texto sin formato, escrı́belo como ‘LaTeX’.
A partir de 2019, hay un comando y formato -dev complementario para todos los
anteriores:
dvilualatex-dev
latex-dev
lualatex-dev
pdflatex-dev
platex-dev
uplatex-dev
xelatex-dev
Estos son candidatos para un próximo lanzamiento de LATEX. El propósito
principal es encontrar y abordar los problemas de compatibilidad antes de un
lanzamiento oficial.
Capı́tulo 2: Descripción de LATEX 5
Estos formatos -dev facilitan que cualquier persona ayude a probar documentos
y código: puedes ejecutar, digamos, pdflatex-dev en lugar de pdflatex, sin
cambiar nada más en tu entorno. De hecho, es más fácil y más útil ejecutar
siempre versiones -dev en lugar de molestarte en cambiar de un lado a otro.
Durante el momento de silencio después de un lanzamiento, los comandos serán
equivalentes.
No se trata de instantáneas diarias ni de código de desarrollo no probado. Se
somete a las mismas pruebas de regresión exhaustiva realizadas por el equipo
de LATEX antes de ser liberado.
Para obtener más información, consulta “El flujo de trabajo de lanzamiento
de LATEX y los formatos LATEX dev” por Frank Mittelbach, TUGboat 40:2,
https://tug.org/TUGboat/tb40-2/tb125mitt-dev.pdf.
2.5 Entorno
Sinopsis:
\begin{nombre-entorno}
Capı́tulo 2: Descripción de LATEX 6
...
\end{nombre-entorno}
Un entorno es un área de la fuente LATEX, dentro de la cual hay un comportamiento distinto.
Por ejemplo, para poesı́a en LATEX coloca las lı́neas entre \begin{verse} y \end{verse}.
\begin{verse}
Habı́a una vez un hombre de Nantucket \\
...
\end{verse}
Véase Capı́tulo 8 [Entornos], página 57, para obtener una lista de entornos. Particu-
larmente notable es que todo documento LATEX debe tener un entorno document, un par
\begin{document} ... \end{document}.
El nombre-entorno al principio debe coincidir exactamente con el de el fin. Esto incluye
el caso donde nombre-entorno termina en una estrella (*); los textos \begin y \end deben
incluir la estrella.
Los entornos pueden tener argumentos, incluidos argumentos opcionales. Este ejemplo
produce una tabla. El primer argumento es opcional (y provoca que la tabla se alinee en su
fila superior) mientras que el segundo argumento es requerido (especifica el formato de las
columnas).
\begin{tabular}[t]{r|l}
... filas de la tabla ...
\end{tabular}
3 Clases de documentos
La clase general del documento se define con este comando, que normalmente es el primer
comando en un archivo fuente LATEX.
\documentclass[options]{class}
Los siguientes nombres de class de documento están integrados en LATEX. (Muchas
otras clases de documentos están disponibles como paquetes separados; véase Capı́tulo 2
[Descripción], página 2).
article Para un artı́culo de revista, una presentación y varios usos generales.
book Libros completos, incluidos capı́tulos y posiblemente una contra portada en
el anverso, como un prefacio, y asunto posterior, como un apéndice (véase
Capı́tulo 25 [Material de portada/contraportada], página 239).
letter Correo, opcionalmente incluyendo etiquetas postales (véase Capı́tulo 26 [Cartas],
página 254).
report Para documentos de longitud entre un article y un book, como informes
técnicos o tesis, que pueden contener varios capı́tulos.
slides Para presentación de diapositivas—rara vez utilizado hoy dı́a. El paquete beamer
es quizás el más frecuentemente utilizado (https://ctan.org/pkg/beamer).
Véase Sección A.1 [Plantilla beamer], página 272, para una peque~ na plantilla
para un documento beamer.
Las options estándar se describen en la siguiente sección.
letterpaper
8.5 por 11 pulgadas (el predeterminado)
Al usar uno de los motores pdfLATEX, LuaLATEX o XeLATEX (véase Sección 2.3 [Motores
TEX], página 3), otras opciones a que letterpaper configura el área de impresión, pero
también debes establecer el tama~ no fı́sico del papel. Una manera de hacer eso es poner
\pdfpagewidth=\paperwidth y \pdfpageheight=\paperheight en el preámbulo de tu
documento. El paquete geometry proporciona formas flexibles de configurar el área de
impresión y tama~no de página fı́sica.
Varias otras opciones:
draft
final Marca cajas (draft) o no marcar (final) cajas demasiado llenas con un recuadro
negro al margen; el valor predeterminado es final.
fleqn Coloca las fórmulas mostradas alineadas a la izquierda; de manera predetermi-
nada están centradas.
landscape
Selecciona el formato apaisado; el valor predeterminado es retrato.
leqno Poner números de ecuación en el lado izquierdo de las ecuaciones; de manera
predeterminada es el lado derecho.
openbib Utiliza el formato de bibliografı́a “abierta”.
titlepage
notitlepage
Especifica si hay una página separada para la información del tı́tulo y para el
resumen también, si lo hay. El valor predeterminado para la clase report es
titlepage, para las otras clases es notitlepage.
Las siguientes opciones no están disponibles con la clase slides.
onecolumn
twocolumn
Composición tipográfica en una o dos columnas; el valor predeterminado es
onecolumn.
oneside
twoside Selecciona el dise~
no de uno o dos lados; el valor predeterminado es oneside,
excepto que en la clase book el valor predeterminado es twoside.
Para la impresión a una cara, el texto se centra en la página. Para impresión
a dos caras, el parámetro \evensidemargin (\oddsidemargin) determina la
distancia en páginas pares (impares) entre el lado izquierdo de la página y el
margen izquierdo del texto, con \oddsidemargin siendo el 40% de la diferencia
entre \paperwidth y \textwidth y \evensidemargin es el resto.
openright
openany Determina si un capı́tulo debe comenzar en una página de la derecha; el valor
predeterminado es openright para book y openany para report.
La clase slides ofrece la opción clock para imprimir lo hora en la parte inferior de cada
nota.
Capı́tulo 3: Clases de documentos 9
Aquı́ hay un archivo de clase inicial, que se debe guardar como stub.cls donde LATEX lo
pueda encontrar, por ejemplo en el mismo directorio que el archivo .tex.
Se identifica a sı́ mismo, maneja las opciones de clase a través del valor predeterminado
pasándolos todos a la clase article, y luego carga la clase article para proporcionar la
base para el código de esta clase.
Para obtener más información, consulta la guı́a oficial para escritores de clases y paquetes,
la clase Guide, en https://www.latex-project.org/help/documentation/clsguide.pdf
(muchas de las descripciones aquı́ se derivan de este documento), o el tutorial https://
www.tug.org/TUGboat/tb26-3/tb84heff.pdf.
\AtBeginDvi{especiales}
Guarda en un cuadro de registro las cosas que se escriben en el archivo .dvi al
comienzo del envı́o de la primera página del documento.
\AtEndOfClass{code}
\AtEndOfPackage{code}
Gancho para insertar code para que se ejecute cuando LATEX termine procesando
la clase o paquete actual. Puedes usar estos ganchos varias veces; el código
se ejecutará en el orden en que lo llames. Consulta también Sección 8.6.1
[\AtBeginDocument], página 62.
\CheckCommand{cmd}[num][default]{definition}
\CheckCommand*{cmd}[num][default]{definition}
Similar a \newcommand (véase Sección 12.1 [\newcommand y \renewcommand],
página 119) pero no define cmd; en su lugar, comprueba que la definición actual
de cmd es o no es exactamente como la definition long como se esperaba. Un
comando largo es un comando que acepta \par dentro de un argumento. Se
espera que el comando cmd sea largo con la versión sin estrella de \CheckCommand.
Levanta un error cuando la comprobación falla. Esto te permite comprobar
antes de empezar a redefinir cmd tú mismo que ningún otro paquete ya haya
redefinido este comando.
Capı́tulo 3: Clases de documentos 11
ción sobre cómo LATEX maneja las extensiones de archivo Sección 24.3 [\input],
página 238.
\ExecuteOptions{options-list}
Para cada opción option en la lista de opciones, en orden, este comando ejecuta
el comando \ds@option. Si este comando no está definido, entonces esa opción
se ignora silenciosamente.
Se puede utilizar para proporcionar una lista de opciones predeterminada an-
tes \ProcessOptions. Por ejemplo, si en un archivo de clase deseas que el
predeterminado sea el tipo de letra de 11 puntos, entonces podrı́as especificar
\ExecuteOptions{11pt}\ProcessOptions\relax.
\NeedsTeXFormat{format}[formato de fecha]
Especifica el formato con el que se debe ejecutar esta clase. A menudo emitido
como la primera lı́nea de un archivo de clase, y se usa con mayor frecuencia
como: \NeedsTeXFormat{LaTeX2e}. Cuando un documento que usa esa clase
es procesado, el nombre de formato proporcionado aquı́ debe coincidir con el
formato que en realidad se está ejecutando (incluyendo que la cadena format es
sensible a mayúsculas y minúsculas). Si no coincide, la ejecución se detiene con
un error como ‘Este archivo necesita formato `LaTeX2e' pero es `xxx'.’
Para especificar una versión del formato que sabes que tiene ciertas carac-
terı́sticas, incluye el formato de fecha opcional en el que esas caracterı́sticas
fueron implementadas. Si está presente, debe tener el formato YYYY/MM/DD. Si
la versión del formato instalada en tu sistema es anterior al formato de fecha,
entonces recibes una advertencia como esta.
Has solicitado la liberación `2038/01/20' de LaTeX, pero solo la
versión `2016/02/01' está disponible.
Capı́tulo 3: Clases de documentos 14
\OptionNotUsed
Agrega la opción actual a la lista de opciones no utilizadas. Solo se puede usar
dentro del argumento code de \DeclareOption o \DeclareOption*.
\PassOptionsToClass{options list}{class name}
\PassOptionsToPackage{options list}{package name}
Agrega las opciones en la lista separada por comas lista de opciones a las opciones
utilizadas por cualquier futuro comando \RequirePackage o \usepackage para
el paquete nombre del paquete o la clase nombre de clase.
El motivo de estos comandos es: puedes cargar un paquete cualquier cantidad de
veces sin opciones, pero, si deseas opciones, solo las puedes proporcionar cuando
cargues el paquete por primera vez. Al cargar un paquete con opciones más de
una vez obtendrás un error como Conflicto de opción para el paquete Foo.
(LATEX arroja un error incluso si no hay conflicto entre opciones).
Si tu propio código trae un paquete dos veces, entonces pue-
des colapsar eso a una vez, por ejemplo reemplazando los dos
\RequirePackage[landscape]{geometry} y \RequirePackage[margins=1in]{geometry}
con el comando único \RequirePackage[landscape,margins=1in]{geometry}.
Sin embargo, imagina que estás cargando firstpkg y dentro de ese paquete
que carga secondpkg, y necesitas que el segundo paquete sea cargado con la
opción draft. Entonces antes de hacer el primer paquete debes poner en cola
las opciones para el segundo paquete, ası́.
\PassOptionsToPackage{draft}{secondpkg}
\RequirePackage{firstpkg}
(Si firstpkg.sty carga una opción en conflicto con lo que deseas entonces
posiblemente tengas que alterar tu fuente).
Estos comandos son útiles para usuarios generales, ası́ como para clases y
paquetes. Por ejemplo, supongamos que un usuario quiere cargar el paquete
graphicx con la opción draft y también quieres usar una clase foo que carga el
paquete graphicx, pero sin esa opción. El usuario podrı́a iniciar su archivo LATEX
con \PassOptionsToPackage{draft}{graphicx}\documentclass{foo}.
\ProcessOptions
\ProcessOptions*\@options
Ejecuta el código para cada opción que el usuario haya invocado. Incluirlo en
el archivo de clase como \ProcessOptions\relax (debido a la existencia del
comando con asterisco).
Las opciones vienen en dos tipos. Opciones locales se han es-
pecificado para este paquete particular en el argumento options
de \PassOptionsToPackage{options}, \usepackage[options], o
\RequirePackage[options]. Opciones globales son las dadas por el usuario de
la clase en \documentclass[options] (si una opción se especifica tanto local
como globalmente, entonces es local).
Cuando se llama a \ProcessOptions para un paquete pkg.sty, lo siguiente
sucede:
1. Para cada opción option declarada hasta ahora con \DeclareOption, busca
si esa opción es una opción global o local para pkg. Si es ası́, ejecuta el
Capı́tulo 3: Clases de documentos 15
\ProvidesFile{filename}[additional information]
Declara un archivo que no sea la clase principal y los archivos del paquete,
como archivos de configuración o archivos de definición del tipo de letra. Pon
este comando en ese archivo y obtienes en el registro una cadena como File:
test.config 2017/10/12 archivo de configuración para test.cls para fi-
lename igual a ‘test.config’ e información adicional igual a ‘2017/10/12
archivo de configuración para test.cls’.
\RequirePackage[options list]{package name}[release date]
\RequirePackageWithOptions{package name}[release date]
Carga un paquete, como el comando \usepackage (véase Sección 3.2 [Paquetes
adicionales], página 9). El equipo de desarrollo de LATEX recomienda encarecida-
mente el uso de estos comandos sobre el \input de TEX estándar; ve la Guı́a de
clase. Un ejemplo es \RequirePackage[landscape,margin=1in]{geometry}.
La lista de opciones, si está presente, es una lista separada por comas. La fecha
de lanzamiento, si está presente, debe tener el formato AAAA/MM/DD. Si la
fecha de lanzamiento del paquete instalado en tu sistema es anterior que la
fecha de lanzamiento, recibes una advertencia como Has solicitado, en la
lı́nea de entrada 9, la versión `2017/07/03' del paquete jhtest, pero
solo está disponible la versión `2000/01/01'.
La versión \RequirePackageWithOptions usa la lista de opciones para la clase
actual. Esto significa que ignoras cualquier opción que se le pase a través de
\PassOptionsToClass. Este es un comando de conveniencia para facilitar la
construcción de clases sobre las existentes sin tener que rastrear cuáles opciones
se pasaron.
La diferencia entre \usepackage y \RequirePackage es peque~ na. El coman-
do \usepackage está dise~ nado para el archivo del documento mientras que
\RequirePackage está dise~ nado para paquetes y archivos de clase. Por lo tan-
to, usar \usepackage antes del comando \documentclass hace que LATEX dé
un error como \usepackage antes de \documentclass, pero allı́ puedes usar
\RequirePackage.
17
4 Tipos de letra
LATEX viene con poderosas capacidades de tipos de letra. Por un lado, este nuevo esquema
de selección de tipos de letra te permite trabajar fácilmente con las familias de tipos de
letra en tu documento (por ejemplo, Sección 4.2 [Estilos de tipos de letra], página 23). Y,
los documentos LATEX pueden usar la mayorı́a de los tipos de letra disponibles actualmente,
incluyendo versiones de Times Roman, Helvetica, Courier, etc. (Nota sin embargo que,
muchos tipos de letra no son compatibles con matemáticas).
El primer tipo de letra en el mundo TEX fue la familia Computer Modern, desarrollado
por Donald Knuth. Es el predeterminado para los documentos LATEX y sigue siendo el más
utilizado. Pero cambiar a otro tipo de letra a menudo solo implica algunos comandos. Por
ejemplo, poner lo siguiente en tu preámbulo te da un tipo de letra similar a Palatino, que
es hermoso y más legible en lı́nea que muchos otros tipos de letra, al mismo tiempo que te
permite tipografı́a de matemáticas. (Este ejemplo es de Michael Sharpe, https://math.
ucsd.edu/~msharpe/RcntFnts.pdf).
\usepackage[osf]{newpxtext} % osf para texto, no matemáticas
\usepackage{cabin} % sans serif
\usepackage[varqu,varl]{inconsolata} % máquina de escribir sans serif
\usepackage[bigdelims,vvarbb]{newpxmath} % bb de STIX
\usepackage[cal=boondoxo]{mathalfa} % mathcal
Además, los motores xelatex o lualatex permiten que uses cualquier tipo de letra en
tu sistema que esté en formato OpenType o TrueType (véase Sección 2.3 [Motores TEX],
página 3).
El catálogo de tipos de letra LATEX (https://tug.org/FontCatalogue) muestra gráficos
de ejemplo del tipo de letra y fuente que se puede copiar y pegar para usar muchos tipos de
letra, incluyendo muchos compatibles con matemáticas. Pretende abarcar todos los tipos de
letra Latin alfabéticas libres disponibles para un uso sencillo con LATEX.
También hay más información disponible en los grupos de usuarios TEX, en https://
www.tug.org/fonts/.
de caracteres más grandes proporcionados por los tipos de letra modernos. Si estás usando
pdflatex entonces pon esto en el preámbulo
\usepackage[T1]{fontenc}
te brinda soporte para los idiomas europeos ampliamente extendidos, incluidos francés,
alemán, italiano, polaco y otros. En particular, si tienes palabras con letras acentuadas
entonces LATEX las dividirá y tu salida se puede copiar y pegar. (La segunda lı́nea opcional
te permite ingresar directamente caracteres acentuados en tu archivo fuente).
Si estás utilizando una codificación como T1 y los caracteres aparecen borrosos o no se
amplı́an bien, entonces tus tipos de letra pueden estar en mapas de bits, a veces llamado
raster o Type 3. Quieres tipos de letra vectoriales. Utiliza un paquete como lmodern o
cm-super para obtener un tipo de letra que extiende el valor predeterminado de LATEX
usando tipos de letra vectoriales.
Para cada font encoding dado como opción pero aún no declarado, este paquete carga
los archivos de definición de codificación, denominados font_encodingenc.def. También
establece \encodingdefault para ser la última codificación en la lista de opciones.
Estos son los valores comunes para font encoding.
El valor predeterminado de LATEX es cargar OML, T1, OT1 y luego OMS, y establece el valor
predeterminado en OT1.
Incluso si no usas letras acentuadas, es posible que debas especificar una codificación de
tipo de letra si tu tipo de letra lo requiere.
Si usas codificaciónT1 en los tipos de letra que no sean las familias Modern predeter-
minadas, es posible que debas cargar el paquete que selecciona tus tipos de letra antes de
cargar fontenc, para evitar que el sistema cargue cualquier tipo de letra codificada T1 de la
predeterminada.
El equipo de LATEX reserva nombres de codificación que comienzan con: ‘T’ para codificacio-
nes de texto estándar con 256 caracteres, ‘TS’ para sı́mbolos que extienden las codificaciones
T correspondientes, ‘X’ para codificaciones de prueba, ‘M’ para codificaciones matemáticas
estándar con 256 caracteres, ‘A’ para aplicaciones especiales, ‘OT’ para codificaciones de
texto estándar con 128 caracteres y ‘OM’ para codificaciones matemáticas estándar con 128
caracteres (‘O’ significa ‘obsoleto’).
Este paquete proporciona una serie de comandos, que se detallan a continuación. Muchos
de ellos son especı́ficos de codificación, por lo que si has definido un comando que funciona
para una codificación pero la codificación actual es diferente, entonces el comando no está
en vigor.
Capı́tulo 4: Tipos de letra 19
4.1.1 \DeclareFontEncoding
Sinopsis:
\DeclareFontEncoding{encoding}{text-settings}{math-settings}
Declara la codificación del tipo de letra encoding. También guarda el valor de encoding
en \LastDeclaredEncoding (véase Sección 4.1.10 [\LastDeclaredEncoding], página 23).
El archivo t1enc.def contiene esta lı́nea (seguida de muchas otras).
\DeclareFontEncoding{T1}{}{}
Los text-settings son los comandos que LATEX ejecutará cada vez que cambias de una
codificación a otra con los comandos \selectfont y \fontencoding. Los math-settings
son los comandos que LATEX usará siempre que el tipo de letra se accede como un alfabeto
matemático.
LATEX ignora cualquier carácter de espacio dentro de text-settings y math-settings, para
evitar espacios no deseados en la salida.
Si inventas una codificación, debes elegir un nombre de dos o tres letras comenzando con
‘L’ para ‘local’, o ‘E’ para ‘experimental’.
Ten en cuenta que LATEX puede leer varias veces los archivos de codificación de salida,
por lo que usar, por ejemplo, \newcommand puede causar un error. Además, tales archivos
deben contener la lı́nea \ProvidesFile (véase Sección 3.3.2 [Comandos class y package],
página 10).
Ten en cuenta también que debes usar los comandos \...Default solo en un paquete,
no en los archivos de definición de codificación, ya que esos archivos solo deben contener
declaraciones especı́ficas para esa codificación.
4.1.2 \DeclareTextAccent
Sinopsis:
\DeclareTextAccent{cmd}{encoding}{slot}
Define un acento, para colocarlo encima de otros glifos, en la codificación encoding en la
ubicación slot.
Un slot es el número que identifica un glifo dentro de un tipo de letra.
Esta lı́nea de t1enc.def declara que para hacer un acento circunflejo como en \^A, el
sistema pondrá el acento en el slot 2 sobre el carácter ‘A’, que se representa en ASCII
como 65. (Esto se mantiene a menos que haya un DeclareTextComposite relevante o una
declaración \DeclareTextCompositeCommand; véase Sección 4.1.6 [\DeclareTextComposite],
página 21).
\DeclareTextAccent{\^}{T1}{2}
Si cmd ya se ha definido, entonces \DeclareTextAccent no da error pero si registra la
redefinición en el archivo de transcripción.
4.1.3 \DeclareTextAccentDefault
Sinopsis:
\DeclareTextAccentDefault{\cmd}{encoding}
Capı́tulo 4: Tipos de letra 20
argumento es lo mismo que especificar 0, lo cual significa que \cmd no tendrá argumentos.
Y, si optargdefault está presente, entonces el primer argumento de \cmd es opcional, con el
valor predeterminado optargdefault (que puede ser la cadena vacı́a). Si optargdefault no
está presente, entonces \cmd tampoco toma un argumento opcional.
4.1.6 \DeclareTextComposite
Sinopsis:
\DeclareTextComposite{\cmd}{encoding}{simple_object}{slot}
Accede a un glifo acentuado directamente, es decir, sin tener que poner un acento sobre
un carácter separado.
Esta lı́nea de t1enc.def significa que \^o provocará a LATEX para componer la
minúscula ‘o’ tomando el carácter directamente desde el slot 224 en el tipo de letra.
\DeclareTextComposite{\^}{T1}{o}{244}
Véase Sección 4.1 [paquete fontenc], página 17, para obtener una lista de codificaciones
comunes. El simple object debe ser un solo carácter o un solo comando. El argumento
slot suele ser un entero positivo representado en decimal (aunque son posibles octal o
hexadecimal). Normalmente \cmd ya se ha declarado para esta codificación, ya sea con
\DeclareTextAccent o con un solo argumento \DeclareTextCommand. En t1enc.def, sigue
la lı́nea anterior al comando \DeclareTextAccent{\^}{T1}{2}.
Capı́tulo 4: Tipos de letra 22
4.1.7 \DeclareTextCompositeCommand
Sinopsis:
\DeclareTextCompositeCommand{\cmd}{encoding}{arg}{code}
Una versión más general de \DeclareTextComposite que ejecuta código arbitrario con
\cmd.
Esto permite que los acentos en ‘i’ actúen como acentos en dotless i, \i.
\DeclareTextCompositeCommand{\'}{OT1}{i}{\'\i}
Véase Sección 4.1 [paquete fontenc], página 17, para obtener una lista de codificaciones
comunes. Normalmente \cmd ya se habrá declarado con \DeclareTextAccent o como un
argumento \DeclareTextCommand.
4.1.8 \DeclareTextSymbol
Sinopsis:
\DeclareTextSymbol{\cmd}{encoding}{slot}
Define un sı́mbolo en la codificación encoding en la ubicación slot. Los sı́mbolos definidos
de esta manera son para usar en texto, no matemáticas.
Por ejemplo, esta lı́nea de t1enc.def declara el número del glifo a usar para «, el guillemet
izquierdo.
\DeclareTextSymbol{\guillemotleft}{T1}{19}
El comando \DeclareTextCommand{\guillemotleft}{T1}{\char 19} tiene el mismo efec-
to pero es más lento (véase Sección 4.1.4 [\DeclareTextCommand y \ProvideTextCommand],
página 20).
Véase Sección 4.1 [paquete fontenc], página 17, para obtener una lista de codificaciones
comunes. El slot se puede especificar en decimal u octal (como en '023), o hexadecimal
(como en "13), aunque el decimal tiene la ventaja de que las comillas simples o dobles se
pueden redefinir por otro paquete.
Si \cmd ya se ha definido, entonces \DeclareTextSymbol no da un error pero registra la
redefinición en el archivo de transcripción.
4.1.9 \DeclareTextSymbolDefault
Sinopsis:
\DeclareTextSymbolDefault{\cmd}{encoding}
Si hay un comando de sı́mbolo especı́fico de codificación \cmd pero no hay un
\DeclareTextSymbol asociado para esa codificación, entonces este comando tomará el
relevo, diciendo que obtenga el sı́mbolo como se describe para encoding.
Por ejemplo, para declarar que si la codificación actual no tiene significado para
\textdollar entonces usa el de OT1, declara esto.
\DeclareTextSymbolDefault{\textdollar}{OT1}
Es decir, este comando es equivalente a esta llamada (véase Sección 4.1.11 [\UseTextSym-
bol y \UseTextAccent], página 23).
\DeclareTextCommandDefault{\cmd}
{\UseTextSymbol{encoding}{\cmd}}
Capı́tulo 4: Tipos de letra 23
4.1.10 \LastDeclaredEncoding
Sinopsis:
\LastDeclaredEncoding
Obtiene el nombre de la codificación declarada más recientemente. El comando
\DeclareFontEncoding almacena el nombre para que se pueda recuperar con este comando
(véase Sección 4.1.1 [\DeclareFontEncoding], página 19).
Esto se basa en \LastDeclaredEncoding en lugar de dar explı́citamente el nombre de la
codificación.
\DeclareFontEncoding{JH1}{}{}
\DeclareTextAccent{\'}{\LastDeclaredEncoding}{0}
4.3 Tama~
nos de los tipos de letra
Los siguientes comandos de tama~ no de letra estándar son compatibles con LATEX. La tabla
muestra el nombre del comando y el tipo de letra en el tama~ no real correspondiente utilizado
(en puntos) con ‘10pt’, ‘11pt’ y ‘12pt’ opciones de tama~ no del documento, respectivamente
(véase Sección 3.1 [Opciones de la clase documento], página 7).
Capı́tulo 4: Tipos de letra 26
m Medium (normal)
sb Semi bold
b Bold
eb Extra bold
ub Ultra bold
Los valores posibles para el ancho, individualmente, son (el significado y relación
de estos términos varı́a con los tipos de letra individuales):
uc Ultra condensed
ec Extra condensed
c Condensed
sc Semi condensed
m Medium
sx Semi expanded
x Expanded
ex Extra expanded
ux Ultra expanded
Al formar la cadena series a partir del peso y el ancho, la m suelta significa
grosor medio o ancho medio, a menos que ambos, el grosor y el ancho sean m,
en cuyo caso usa solo una (‘m’).
\fontshape{shape}
Selecciona la forma del tipo de letra. Las formas válidas son:
n Upright (normal)
it Italic
sl Slanted (oblique)
sc Small caps
ui Upright italics
ol Outline
Las dos últimas formas no están disponibles para la mayorı́a de las familias de
tipos de letra, y a menudo también faltan las versalitas.
\fontsize{size}{skip}
Establece el tama~no del tipo de letra y el espacio entre lı́neas. La unidad de
ambos parámetros el valor predeterminado es puntos (pt). El interlineado es el
espacio vertical nominal entre lı́neas, lı́nea base a lı́nea base. Se almacena en
el parámetro \baselineskip. El \baselineskip predeterminado para el tipo
de letra Computer Modern es 1.2 veces el \fontsize. Cambiar \baselineskip
directamente no es recomendable ya que su valor se restablece cada vez que ocurre
un cambio de tama~ no; en su lugar usa \baselinestretch. (véase Sección 5.6
[\baselineskip y \baselinestretch], página 35).
\linespread{factor}
Equivalente a \renewcommand{\baselinestretch}{factor}, y por lo tanto
debe ir seguido de \selectfont para tener cualquier efecto. Mejor especificado
en el preámbulo. Véase Sección 5.6 [\baselineskip y \baselinestretch], página 35,
por usar el paquete setspace en su lugar.
Capı́tulo 4: Tipos de letra 29
\selectfont
Los efectos de los comandos de tipo de letra descritos anterior-
mente no suceden hasta que se llama a \selectfont, como en
\fontfamily{familyname}\selectfont. A menudo es útil poner esto en una
macro:
\newcommand*{\myfont}{\fontfamily{familyname}\selectfont}
(véase Sección 12.1 [\newcommand y \renewcommand], página 119).
\usefont{enc}{family}{series}{shape}
Lo mismo que invocar a \fontencoding, \fontfamily, \fontseries y
\fontshape con los parámetros dados, seguidos de \selectfont. Por ejemplo:
\usefont{ot1}{cmr}{m}{n}
30
5 Composición
Comandos para controlar la composición general de página.
5.1 \onecolumn
Sinopsis:
\onecolumn
Inicia una nueva página y genera una salida de una sola columna. Si al documento
le es dada la opción de clase onecolumn entonces este es el valor predeterminado del
comportamiento (véase Sección 3.1 [Opciones de la clase documento], página 7). Este
comando es frágil (véase Sección 12.11 [\protect], página 130).
5.2 \twocolumn
Sinopsis:
\twocolumn
\twocolumn[texto preliminar de una columna]
Inicia una nueva página y genera un resultado de dos columnas. Si se entrega al documento
la opción de clase twocolumn entonces esta es la predeterminada (véase Sección 3.1 [Opciones
de la clase documento], página 7). Este comando es frágil (véase Sección 12.11 [\protect],
página 130).
Si el argumento opcional texto preliminar de una columna está presente, se escribe en el
modo de una columna antes de que comience la composición tipográfica de dos columnas.
Estos parámetros controlan la composición tipográfica en la salida de dos columnas:
\columnsep
La distancia entre columnas. El valor predeterminado es 35 puntos. Cámbialo con
un comando como \setlength{\columnsep}{40pt}. Lo debes cambiar antes
de que comience el modo de dos columnas; en el preámbulo es un buen lugar.
\columnseprule
El ancho de la regla entre columnas. El valor predeterminado es 0pt,
lo cual significa que no hay regla. De lo contrario, la regla aparece a
medio camino entre las dos columnas. Cámbialo con un comando como
\setlength{\columnseprule}{0.4pt}, antes de comenzar el modo de dos
columnas.
\columnwidth
El ancho de una sola columna. En el modo de una columna esto es igual a
\textwidth. En el modo de dos columnas de manera predeterminada, LATEX
establece el ancho de cada una de las dos columnas, para que \columnwidth sea
la mitad de \textwidth menos \columnsep.
En un documento de dos columnas, los entornos destacados table* y figure* tienen dos
columnas de ancho, mientras que los entornos sin estrellas table y figure ocupan solo una
columna (véase Sección 8.10 [figure], página 65, y véase Sección 8.22 [table], página 91). LATEX
Capı́tulo 5: Composición 31
coloca flotantes con estrellas en la parte superior de una página. Los siguientes parámetros
controlan el comportamiento flotante de la salida de dos columnas.
\dbltopfraction
La fracción máxima en la parte superior de una página de dos columnas que
pueden ocupar flotantes de dos columnas de ancho. El valor predeterminado
es 0.7, lo cual significa que la altura de un entorno table* o figure* no debe
superar 0.7\textheight. Si la altura de tu entorno flotante estrellado excede
esto, entonces puedes tomar una de las siguientes acciones para evitar que flote
hasta el final del documento:
• Usa el especificador de ubicación [tp] para decirle a LATEX que intente
poner el voluminoso flotante en una página por sı́ mismo, ası́ como en la
parte superior de una página.
• Utiliza el especificador de ubicación [t!] para anular el efecto de
\dbltopfraction para este flotante en particular.
• Aumenta el valor de \dbltopfraction a un número adecuadamente grande,
para evitar ir a páginas flotantes tan pronto como sea posible.
Lo puedes redefinir, como con \renewcommand{\dbltopfraction}{0.9}.
\dblfloatpagefraction
Para una página flotante de dos columnas de ancho flotantes, esta es la fracción
mı́nima que deben ocupar los flotantes, limitando la cantidad de espacio en
blanco. El valor predeterminado de LATEX es 0.5. Cámbialo con \renewcommand.
\dblfloatsep
En una página flotante de flotantes de dos columnas de ancho, esta longitud es
la distancia entre flotantes, tanto en la parte superior como en la inferior de la
página. El valor predeterminado es 12pt plus2pt minus2pt para un documen-
to establecido en 10pt o 11pt y 14pt plus2pt minus4pt para un documento
establecido en 12pt.
\dbltextfloatsep
Esta longitud es la distancia entre un flotante de varias columnas en la par-
te superior o la parte inferior de una página y el texto principal. El valor
predeterminado es 20pt plus2pt minus4pt.
\dbltopnumber
En una página flotante de flotantes de dos columnas de ancho, este contador da
el número máximo de flotantes permitidos en la parte superior de la página. El
valor predeterminado de LATEX es 2.
Este ejemplo usa el argumento opcional de \twocolumn para crear un tı́tulo que abarca
el artı́culo de dos columnas:
\documentclass[twocolumn]{article}
\newcommand{\authormark}[1]{\textsuperscript{#1}}
\begin{document}
\twocolumn[{% dentro de este argumento opcional va texto de una columna
\centering
\LARGE El tı́tulo \\[1.5em]
Capı́tulo 5: Composición 32
5.3 \flushbottom
Hace que todas las páginas del documento después de esta declaración tengan la misma
altura, estirando el espacio vertical donde sea necesario para llenar la página. Esto se usa
con más frecuencia cuando se hacen documentos de dos caras ya que las diferencias en las
páginas opuestas pueden ser evidentes.
Si TEX no puede estirar satisfactoriamente el espacio vertical en una página luego
obtienes un mensaje como ‘Infralleno \vbox (maliciosos 10000) ocurrió mientras
\output está activa’. Si lo consigues, una opción es cambiar a \raggedbottom (véase
Sección 5.4 [\raggedbottom], página 32). Alternativamente, puedes ajustar el textheight
para hacer páginas compatibles, o puedes agregar un poco de pegamento de estiramiento
vertical entre lı́neas o entre párrafos, como en \setlength{\parskip}{0ex plus0.1ex}. Tu
última opción es, en una etapa de edición final, ajustar la altura de las páginas individuales
(véase Sección 10.3 [\enlargethispage], página 112).
El estado \flushbottom es el predeterminado solo si seleccionas la opción twocolumn de
la clase documento (véase Sección 3.1 [Opciones de la clase documento], página 7), y para
ı́ndices hechos con makeidx.
5.4 \raggedbottom
Hace que todas las páginas posteriores tengan la altura natural del material en esa página;
no se estirarán las longitudes verticales elásticas. Ası́, en documentos de dos caras las páginas
opuestas pueden tener diferentes alturas. Este comando puede ir en cualquier punto del
cuerpo del documento. Véase Sección 5.3 [\flushbottom], página 32.
Este es el valor predeterminado a menos que selecciones la opción twocolumn de la clase
documento (véase Sección 3.1 [Opciones de la clase documento], página 7).
está en vigor (véase Sección 3.1 [Opciones de la clase documento], página 7).
Véase Sección 5.2 [\twocolumn], página 30.
\headheight
Altura de la caja que contiene la cabecera móvil. El valor predeterminado en las
clases article, report y book son ‘12pt’, en todos los tama~ nos de letra.
\footskip
Distancia desde la lı́nea base de la última lı́nea de texto hasta la lı́nea base de
el pie de página. El valor predeterminado en las clases article y report es
‘30pt’. En la clase book el valor predeterminado es: cuando el tama~ no de letra es
de 10 puntos, el predeterminado es ‘0.35in’, mientras que en 11pt es ‘0.38in’,
y en 12pt es ‘30pt’.
\linewidth
Ancho de la lı́nea actual, disminuido para cada lista anidada (véase Sec-
ción 8.16 [list], página 71). Es decir, el valor nominal de \linewidth es igual
a \textwidth pero para cada \linewidth de la lista anidada se reduce por la
suma del \leftmargin de esa lista y \rightmargin (véase Sección 8.14 [itemize],
página 69).
\marginparpush
\marginsep
\marginparwidth
El espacio vertical mı́nimo entre dos notas marginales, el espacio horizontal
entre el cuerpo del texto y las notas marginales, y el ancho horizontal de las
notas.
Normalmente, las notas marginales aparecen en el exterior de la página, pero la
declaración \reversemarginpar cambia eso (y \normalmarginpar lo vuelve a
cambiar).
Los valores predeterminados para \marginparpush tanto en book como en las
clases article son: ‘7pt’ si el documento se establece en 12pt, y ‘5pt’ si el
documento está configurado en 11 o 10 puntos.
Para \marginsep, en la clase article el valor predeterminado es ‘10pt’ excepto
si el documento está configurado en 10pt y en modo de dos columnas donde el
valor predeterminado es ‘11pt’.
Para \marginsep en la clase book, el valor predeterminado es ‘10pt’ en modo
de dos columnas y ‘7pt’ en modo de una columna.
Para \marginparwidth tanto en las clases book como article, en el modo de
dos columnas, el valor predeterminado es el 60 % de \paperwidth − \textwidth,
mientras que en el modo de una columna es el 50% de esa distancia.
Capı́tulo 5: Composición 34
\oddsidemargin
\evensidemargin
La longitud de \oddsidemargin es la distancia adicional entre el lado izquierdo
de la página y el margen izquierdo del texto, en las páginas impares cuando
se elige la opción de clase documento twoside y en todas las páginas cuando
oneside está en vigor. Cuando twoside está en vigor, en páginas pares, la
distancia adicional a la izquierda es \evensidemargin.
El valor predeterminado de LATEX es que \oddsidemargin es el 40% de la
diferencia entre \paperwidth y \textwidth, y \evensidemargin es el resto.
\paperheight
La altura del papel, a diferencia de la altura del área de impresión.
Normalmente se establece con una opción de la clase documento, como en
\documentclass[a4paper]{article} (véase Sección 3.1 [Opciones de la clase
documento], página 7).
\paperwidth
El ancho del papel, a diferencia del ancho del área de impresión.
Normalmente se establece con una opción de la clase documento, como en
\documentclass[a4paper]{article} (véase Sección 3.1 [Opciones de la clase
documento], página 7).
\textheight
La altura vertical normal del cuerpo de la página. Si el documento se esta-
blece en un tama~ no de letra nominal de 10pt entonces para un article o
report el valor predeterminado es ‘43\baselineskip’, mientras que para un
book es ‘41\baselineskip’. Con un tama~ no de letra de 11pt, el valor predeter-
minado es ‘38\baselineskip’ para todas las clases de documento. A 12pt es
‘36\baselineskip’ para todas las clases.
\textwidth
El ancho horizontal completo de todo el cuerpo de la página. Para un documento
article o report, el valor predeterminado es ‘345pt’ cuando el tama~ no de
letra elegido es 10pt, el valor predeterminado es ‘360pt’ a 11pt, y es ‘390pt’
a 12pt. Para un documento book, el valor predeterminado es ‘4.5in’ con un
tama~no de letra de 10pt y ‘5in’ con 11pt o 12pt.
En la salida de varias columnas, \textwidth sigue siendo el ancho de todo el
cuerpo de la página, mientras que \columnwidth es el ancho de una columna
(véase Sección 5.2 [\twocolumn], página 30).
En las listas (véase Sección 8.16 [list], página 71), \textwidth sigue siendo
el ancho de todo el cuerpo de la página (y \columnwidth el ancho de toda la
columna), mientras que \linewidth puede disminuir para las listas anidadas.
Dentro de una minipágina (véase Sección 8.18 [minipage], página 77) o \parbox
(véase Sección 20.3 [\parbox], página 202), todos los parámetros relacionados
con el ancho se establecen en el ancho especificado, y vuelven a sus valores
normales al final de minipage o \parbox.
Capı́tulo 5: Composición 35
\hsize Esta entrada se incluye para completar: \hsize es el parámetro primitivo TEX
utilizado cuando el texto se divide en lı́neas. No se deberı́a usar en documentos
LATEX normales.
\topmargin
Espacio entre la parte superior de la página TEX (una pulgada desde la parte
superior del papel, de manera predeterminada) y la parte superior de la cabecera.
El valor se calcula basado en muchos otros parámetros: \paperheight − 2in −
\headheight − \headsep − \textheight − \footskip, y luego dividido por
dos.
\topskip Distancia mı́nima entre la parte superior del cuerpo de la página y la lı́nea base
de la primera lı́nea de texto. Para las clases estándar, el valor predeterminado es
igual que el tama~ no de letra, por ejemplo, ‘10pt’ en un tama~ no de letra de 10pt.
5.7 Flotantes
Algunos elementos tipográficos, como figuras y tablas, no se pueden romper a través de las
páginas. Deben estar escritos fuera del flujo normal de texto, por ejemplo, flotando en la
parte superior de una página posterior.
Capı́tulo 5: Composición 37
LATEX puede tener varias clases diferentes de material flotante. El valor predeterminado
son las dos clases, figure (véase Sección 8.10 [figure], página 65) y table (véase Sección 8.22
[table], página 91), pero puedes crear una nueva clase con el paquete float.
Dentro de cualquier clase float, LATEX siempre respeta el orden, de modo que la primera
figura en un documento fuente debe estar compuesta tipográficamente antes que la segunda
figura. Sin embargo, LATEX puede mezclar las clases, por lo que puede suceder que mientras
que la primera tabla aparece en la fuente antes de la primera figura, aparece en la salida
después de ella.
La colocación de flotantes está sujeta a parámetros, que se indican a continuación, que
limitan el número de flotantes que pueden aparecer en la parte superior de una página, y
el fondo, etc. Si hay tantos flotantes en cola que los lı́mites impiden para que no encajen
en una página, entonces LATEX coloca lo que puede y aplaza el resto a la página siguiente.
De esta manera, los flotantes pueden terminar siendo tipografı́ados lejos de su lugar en la
fuente. En particular, un flotante que es grande puede migrar al final del documento. En
cuyo caso, porque todos los flotantes en una clase deben aparecer en orden secuencial, cada
flotante siguiente en esa clase también aparece al final.
Además de cambiar los parámetros, para cada flotante puedes ajustar dónde el algoritmo
de colocación flotante intenta colocarlo usando su argumento placement. Los valores posibles
son una secuencia de las letras debajo. El valor predeterminado para figure y table, en
ambas clases, article y book, es tbp.
t (Top)—en la parte superior de una página de texto.
b (Bottom)—en la parte inferior de una página de texto. (Sin embargo, b no es
permitido para flotantes de ancho completo (figure*) con producción en doble
columna. Para mejorar esto, usa stfloats o el paquete dblfloatfix, pero ve la
discusión en las advertencias en las preguntas frecuentes: https://www.texfaq.
org/FAQ-2colfloat.
h (Here)—en la posición en el texto donde el entorno figure aparece. Sin embargo,
h no está permitido por sı́ mismo; t se a~
nade automáticamente.
Para forzar absolutamente que un flotante aparezca “aquı́”, puedes
\usepackage{float} y usa el especificador H que define. Para obtener más
información, consulta la entrada de preguntas frecuentes en https://www.
texfaq.org/FAQ-figurehere.
p (Página de flotantes)—en una página flotante separada, que es una página que
no contiene texto, solo flotantes.
! Se utiliza además de uno de los anteriores; solo para este flotante, LATEX ignora
las restricciones tanto en el número de flotantes que pueden aparecer y las
cantidades relativas de texto flotante y no flotante en la página. El especificador
! no significa “pon el flotante aquı́”, ve más arriba.
Nota: el orden en que aparecen las letras en el argumento placement no cambia el orden
en que LATEX intenta colocar el flotante; por ejemplo, btp tiene el mismo efecto que tbp.
Todo lo que placement hace es que si una letra no está presente entonces el algoritmo no
intenta esa ubicación. Por lo tanto, el valor predeterminado de LATEX de tbp es probar cada
ubicación excepto colocar el flotante donde ocurre en la fuente.
Capı́tulo 5: Composición 38
Para evitar que LATEX mueva flotantes al final del documento o un capı́tulo puede usar
un comando \clearpage para comenzar una nueva página e inserta todos los flotantes
pendientes. Si no deseas un salto de página, puedes usar el paquete afterpage y emitir
\afterpage{\clearpage}. Esto esperará hasta que la página actual haya terminado y
entonces vuelca todos los flotantes pendientes.
LATEX puede escribir un flotante antes de donde aparece en la fuente (aunque en la misma
página de salida) si hay un especificador t en el parámetro placement. Si esto no se desea, y
se elimina la t no es aceptable ya que evita que se coloque el flotante en la parte superior
de la página siguiente, lo puedes evitar usando el paquete flafter o usando el comando
\suppressfloats[t], lo que provoca flotantes para la posición superior en esta página para
pasar a la página siguiente.
Parámetros relativos a las fracciones de páginas ocupadas por float y texto no flotante
(cámbialos con \renewcommand{parameter}{decimal entre 0 y 1}):
\bottomfraction
La fracción máxima de la página que se permite sea ocupada por flotantes en el
fondo; predeterminado ‘.3’.
\floatpagefraction
La fracción mı́nima de una página flotante que debe estar ocupada por flotantes;
predeterminado ‘.5’.
\textfraction
Fracción mı́nima de una página que debe ser texto; si los flotantes también
ocupan mucho espacio para conservar tanto texto, los flotantes se moverán a
una pagina diferente. El valor predeterminado es ‘.2’.
\topfraction
Fracción máxima en la parte superior de una página que se puede ocupar antes
por flotantes; predeterminado ‘.7’.
Parámetros relacionados con el espacio vertical alrededor de los flotantes (cámbialos con
un comando de la forma \setlength{parameter}{expresión length}):
\floatsep
Espacio entre flotantes en la parte superior o inferior de una página; predefinido
‘12pt más 2pt menos 2pt’.
\intextsep
Espacio encima y debajo de un flotante en medio del texto principal; predeter-
minado ‘12pt plus2pt minus2pt’ para documentos de 10 y 11 puntos, y ‘14pt
plus4pt minus4pt’ para documentos de 12 puntos.
\textfloatsep
Espacio entre el último (primer) flotante en la parte superior (inferior) de una
página; predeterminado ‘20pt plus2pt minus4pt’.
Contadores relacionados con el número de flotantes en una página (cámbialos con un
comando de la forma \setcounter{ctrname}{número natural}):
bottomnumber
Número máximo de flotantes que pueden aparecer en la parte inferior de una
página de texto; predeterminado 1.
Capı́tulo 5: Composición 39
dbltopnumber
Número máximo de flotantes de tama~ no completo que pueden aparecer en la
parte superior de una página de dos columnas; predeterminado 2.
topnumber
Número máximo de flotantes que pueden aparecer en la parte superior de una
página de texto; predeterminado 2.
totalnumber
Número máximo de flotantes que pueden aparecer en una página de texto;
predeterminado 3.
La entrada principal de preguntas frecuentes TEX relacionada con los flotantes
https//www.texfaq.org/FAQ-floats contiene sugerencias para relajar los parámetros
predeterminados de LATEX para reducir el problema de los flotantes empujados hasta el
final. Una explicación completa del algoritmo de colocación de flotantes se encuentra en
el artı́culo de Frank Mittelbach “Cómo influir en la posición de los entornos flotantes
como figure y table en LATEX?” (https//www.latex-project.org/publications/
2014-FMi-TUB-tb111mitt-float-placement.pdf).
5.7.1 \caption
Sinopsis:
\caption{caption-text}
o
\caption[short-caption-text]{caption-text}
Crea un tı́tulo para un entorno flotante, como figure o entorno table (véase Sección 8.10
[figure], página 65, o Sección 8.22 [table], página 91).
En este ejemplo, LATEX coloca un tı́tulo debajo del espacio en blanco vertical, espacio
que deja el autor para la posterior inclusión de una imagen.
\begin{figure}
\vspace*{1cm}
\caption{Alonzo Cushing, Baterı́a A, 4a artillerı́a de EE. UU.}
\label{fig:CushingPic}
\end{figure}
El comando \caption etiquetará caption-text con algo como ‘Figura 1:’ para un artı́culo
o ‘Figura 1.1:’ para un libro. El texto está centrado si está más corto que el ancho del
texto, o establecido como un párrafo sin sangrı́a si toma más de una lı́nea.
Además de colocar el caption-text en la salida, el comando \caption también guarda esa
información para usarla en una lista de figuras o lista de tablas (véase Sección 25.1 [Tabla
de contenido etc.], página 239).
Aquı́ el comando \caption usa el comando opcional short-caption-text, para que el texto
más corto aparezca en la lista de tablas, en lugar del caption-text más largo.
\begin{table}
\centering
\begin{tabular}{|*{3}{c}|}
\hline
Capı́tulo 5: Composición 40
4 &9 &2 \\
3 &5 &7 \\
8 &1 &6 \\
\hline
\end{tabular}
\caption[\textit{Lo Shu} cuadrado mágico]{%
The \textit{Lo Shu} que es único entre
cuadrados de orden tres hasta rotación y reflexión.}
\label{tab:LoShu}
\end{table}
LATEX etiquetará caption-text con algo como ‘Tabla 1:’ para un artı́culo o ‘Tabla 1.1:’
para un libro.
El tı́tulo puede aparecer en la parte superior de la figura o tabla. Por ejemplo,
eso sucederı́a en el ejemplo anterior poniendo el \caption entre el \centering y el
\begin{tabular}.
Los distintos entornos flotantes se numeran por separado, de forma predeterminada. Eso
es \caption que actualiza el contador, por lo que cualquier \label debe ir después del
\caption. El contador para el entorno figure se llama figure, y de manera similar el
contador para el entorno table es table.
El texto que se pondrá en la lista de figuras o lista de tablas es argumento móvil. Si
recibes el error LATEX ‘! Argumento de \@caption tiene un extra}’, entonces debes poner
\protect delante de cualquier comando frágil. Véase Sección 12.11 [\protect], página 130.
El paquete caption tiene muchas opciones para ajustar cómo aparece el tı́tulo, por
ejemplo, cambiando el tama~ no del texto, haciendo que el tı́tulo sea colgar texto en lugar de
establecerlo como un párrafo, o hacer el tı́tulo siempre establecido como un párrafo en lugar
de centrado cuando es corto.
41
6 Seccionado
Estructura tu texto en divisiones: partes, capı́tulos, secciones, etc. Todos los comandos de
seccionado tienen la misma forma, una de:
sectioning-command{title}
sectioning-command*{title}
sectioning-command[toc-title]{title}
Por ejemplo, declarar el comienzo de una subsección como con \subsection{Motivación}.
La tabla tiene cada sectioning-command en LATEX. Todos están disponibles en todas las
clases de documentos estándar de LATEX book, report y article, excepto que \chapter
no está disponible en article.
Unidad de seccionado Comando Nivel
Parte \part -1 (book, report), 0 (article)
Capı́tulo \chapter 0
Sección \section 1
Subsección \subsection 2
Subsubsección \subsubsection 3
Párrafo \paragraph 4
Subpárrafo \subparagraph 5
Todos estos comandos tienen una forma * que imprime tı́tulo como de costumbre pero
no lo numera y no hace una entrada en la tabla de contenido. Un ejemplo de cómo usar
esto es para un apéndice en un article. Las entradas \appendix\section{Appendix} da
como resultado ‘Apéndice A’ (véase Sección 6.6 [\appendix], página 48). Puedes perder
la numeración ‘A’ ingresando en su lugar \section*{Appendix} (los artı́culos a menudo
omiten una tabla de contenido y tienen encabezados de página simples para que las otras
diferencias del comando \section puedan no importar).
El tı́tulo de la sección tı́tulo proporciona el tı́tulo en el texto principal, pero también
puede aparecer en la tabla de contenido y en el encabezado o pie (véase Capı́tulo 18 [Estilos
de página], página 181). Es posible que no desees el mismo texto en estos lugares como en
el texto principal. Todos estos comandos tienen un argumento toc-title opcional para esos
otros lugares.
El número de nivel en la tabla anterior determina qué unidades seccionales son numeradas,
y que aparecen en la tabla de contenido. Si los comandos de seccionado level son menores o
iguales que el valor del contador secnumdepth entonces los tı́tulos para este comando de
seccionado serán numerados (véase [Seccionado/secnumdepth], página 42). Y, si level es
menor que o igual al valor del contador tocdepth luego la tabla de contenido tendrá una
entrada para esta unidad de seccionado (véase [Seccionado/tocdepth], página 42).
LATEX espera que antes de tener una \subsection tengas una \section y, en un do-
cumento de clase book, que antes de una \section tendrás un \chapter. De lo contrario,
puedes obtener algo ası́ como una subsección numerada ‘3.0.1’.
LATEX te permite cambiar la apariencia de las unidades seccionales. Como un ejemplo
simple, puedes cambiar la numeración de la sección a letras mayúsculas con esto (en el
preámbulo):
\renewcommand\thesection{\Alph{section}} . (Véase Sección 13.1 [\alph \Alph \arabic
Capı́tulo 6: Seccionado 42
\roman \Roman \fnsymbol], página 134). CTAN tiene muchos paquetes que facilitan este
ajuste, en particular titlesec.
Dos contadores se relacionan con la apariencia de los encabezados realizados por comandos
de seccionado.
secnumdepth
Controla qué unidades de seccionado están numeradas. Poniendo el conta-
dor con \setcounter{secnumdepth}{level} suprimirá numeración de sec-
cionado a cualquier profundidad superior a level (véase Sección 13.4 [\set-
counter], página 136). Consulta la tabla anterior para ver los números de
nivel. Por ejemplo, si secnumdepth es 1 en un article entonces un comando
\section{Introducción} producirá una salida como ‘1 Introducción’ mien-
tras que \subsection{Discusión} produce una salida como ‘Discusión’, sin
número. LATEX secnumdepth predeterminado es 3 en la clase article y 2 en
las clases book y report.
tocdepth Controla qué unidades de seccionado se enumeran en la tabla de contenido.
La configuración \setcounter{tocdepth}{level} hace que las unidades de
Seccionado en level sean las más peque~ nas enumeradas (véase Sección 13.4
[\setcounter], página 136). Consulta la tabla anterior para ver los números de
nivel. Por ejemplo, si tocdepth es 1 entonces la tabla de contenido enumera
secciones pero no subsecciones. Predeterminado de LATEX tocdepth es 3 en la
clase article y 2 en la clase book y report.
6.1 \part
Sinopsis, una de:
\part{tı́tulo}
\part*{tı́tulo}
\part[toc-title]{tı́tulo}
Inicia una parte del documento. Las clases estándar de LATEX book, report y article,
todas tienen este comando.
Esto produce una parte del documento, en un libro.
\part{VOLUMEN I \\
MEMORIAS PERSONALES DE U.\ S.\ GRANT}
\chapter{ANCESTRIA--NACIMIENTO--INFANCIA.}
Mi familia es estadounidense, y lo ha sido durante generaciones, en
todas sus ramas, directas y colaterales.
En cada clase estándar, el comando \part genera un número de pieza como ‘Parte I’, solo
en su lı́nea, en negrita y en grandes letras. Entonces LATEX genera tı́tulo, también solo en su
lı́nea, en negrita y en letra aún más grande. En la clase book, el LATEX predeterminado pone
cada parte sola en su propia página. Si el libro tiene dos caras entonces LATEX saltará una
página si es necesario para tener la nueva parte en una página impar. En report nuevamente
está solo en una página, pero LATEX no forzará una página impar. En un article LATEX no
lo coloca en una página nueva, sino que genera el número de parte y tı́tulo de la parte en la
página principal del documento.
Capı́tulo 6: Seccionado 43
6.2 \chapter
Sinopsis, una de:
\chapter{tı́tulo}
\chapter*{tı́tulo}
\chapter[toc-title]{tı́tulo}
Inicia un capı́tulo. Las clases estándar de LATEX book y report tienen este comando pero
no article.
Esto produce un capı́tulo.
\chapter{Acechantes}
Capı́tulo 18 [Estilos de página], página 181). Si no está presente entonces tı́tulo estará allı́.
Esto muestra el nombre completo en el tı́tulo del capı́tulo,
\chapter[Weyl]{Hermann Klaus Hugo (Peter) Weyl (1885--1955)}
pero solo ‘Weyl’ en la página de contenido. Esto pone un salto de lı́nea en el tı́tulo, pero eso
no funciona bien con las cabeceras en ejecución, por lo que omite el salto en el contenido.
\chapter[Dado todo; mi historia]{Dado todo\\ mi historia}
Para determinar qué unidades seccionales están numeradas y cuáles aparecen en la tabla
de contenido, el número de nivel de un capı́tulo es 0 (véase [Seccionado/secnumdepth],
página 42, y véase [Seccionado/tocdepth], página 42).
El párrafo que sigue al tı́tulo del capı́tulo no tiene sangrı́a, al igual que una práctica
tipográfica estándar. Para obtener una sangrı́a, usa el paquete indentfirst.
Puedes cambiar lo que se muestra para el número de capı́tulo. Para cambiarlo a algo como
‘Conferencia 1’, pon en el preámbulo \renewcommand{\chaptername}{Conferencia} o
esto (véase Sección 12.3 [\makeatletter y \makeatother], página 122).
\makeatletter
\renewcommand{\@chapapp}{Conferencia}
\makeatother
Para hacer este cambio debido al idioma principal de el documento, consulta el paquete
babel.
En un documento de dos caras, LATEX coloca un capı́tulo en una página impar, si es
necesario dejar una página par que esté en blanco excepto por cualquier cabecera en ejecución.
Para dejar esa página completamente en blanco, Sección 10.1 [\clearpage y \cleardoublepage],
página 111.
Para cambiar el comportamiento del comando \chapter, puedes copiar su definición del
archivo de formato LATEX y realizar ajustes. Pero también hay muchos paquetes en CTAN
que abordan esto. Uno es titlesec. Ve su documentación, pero el ejemplo a continuación
da un sentido de lo que puede hacer.
\usepackage{titlesec} % en el preámbulo
\titleformat{\chapter}
{\Huge\bfseries} % formato del tı́tulo
{} % etiqueta, tal como 1.2 para una subsección
{0pt} % longitud de la separación entre la etiqueta y
% el tı́tulo
{} % gancho antes del código
Esto omite el número de capı́tulo ‘Capı́tulo 1’ de la página pero a diferencia de \chapter*
mantiene el capı́tulo en la tabla de contenido y la ejecución de cabeceras.
6.3 \section
Sinopsis, una de:
\section{tı́tulo}
\section*{tı́tulo}
\section[toc-title]{tı́tulo}
Capı́tulo 6: Seccionado 45
Inicia una sección. Las clases estándar article de LATEX, book y report tienen este
comando.
Esto produce una sección.
En esta Parte tendemos a estar más interesados en la función, en el
comportamiento de entrada-salida, que en los detalles de implementar
ese comportamiento.
\section{Máquinas de Turing}
\titleformat{\section}
{\normalfont\Large\bfseries} % formato del tı́tulo
{\makebox[1pc][r]{\thesection\hspace{1pc}}} % etiqueta
{0pt} % Longitud de la separación entre la etiqueta y el tı́tulo
{} % gancho antes del código
\titlespacing*{\section}
{-1pc}{18pt}{10pt}[10pc]
Eso pone el número de sección en el margen.
6.4 \subsection
Sinopsis, una de:
\subsection{title}
\subsection*{title}
\subsection[toc-title]{title}
Inicia una subsección. Las clases estándar article de LATEX, book y report tienen este
comando.
Esto produce una subsección.
Mostraremos que hay más funciones que las máquinas de Turing y que por
tanto, algunas funciones no tienen máquina asociada.
\subsection{Cardinalidad}
muchos paquetes en CTAN que abordan esto, incluido titlesec. Ve la documentación pero
el siguiente ejemplo da una idea de lo que pueden hacer.
\usepackage{titlesec} % en el preámbulo
\titleformat{\subsection}[runin]
{\normalfont\normalsize\bfseries} % formato del tı́tulo
{\thesubsection} % etiqueta
{0.6em} % espacio entre la etiqueta y
% el tı́tulo
{} % gancho antes del código
Eso pone el número de subsección y title en la primera lı́nea de texto.
6.6 \appendix
Sinopsis:
\appendix
Este no produce directamente ningún resultado. Pero en un documento book o report
declara que los subsiguientes comandos \chapter comienzan un apéndice. En un artı́culo
hace lo mismo, para los comandos \section. También restablece los contadores chapter
y section a 0 en un libro o informe, y en un artı́culo restablece los contadores section y
subsection.
En este libro
\chapter{Uno} ...
\chapter{Dos} ...
...
\appendix
\chapter{Tres} ...
\chapter{Cuatro} ...
los dos primeros generarán una salida numerada ‘Capı́tulo 1’ y ‘Capı́tulo 2’. Después del
\appendix la numeración será ‘Apéndice A’ y ‘Apéndice B’. Véase Sección A.4 [Plantilla de
libro Larger], página 273, para otro ejemplo.
El paquete appendix agrega el comando \appendixpage para poner ‘Apéndices’ separa-
dos en el cuerpo del documento antes del primer apéndice y el comando \addappheadtotoc
hace lo mismo en la tabla de contenido. Puedes restablecer el nombre ‘Apéndices’ con un
comando como \renewcommand{\appendixname}{Especificación}, ası́ como una serie de
otras caracterı́sticas. Consulta la documentación en CTAN.
...
\backmatter
...
Da formato a un documento de clase book de forma diferente según la parte del documento
que se está produciendo. Los tres comandos son opcionales.
Tradicionalmente, la portada de un libro contiene elementos como la página de tı́tulo,
un resumen, un ı́ndice, un prefacio, una lista de anotaciones, una lista de figuras y una
lista de tablas. (Algunas de estas páginas de asuntos frontales, como la página del tı́tulo,
tradicionalmente no están numeradas). El material anterior puede contener cosas tales como
un glosario, notas, una bibliografı́a y un ı́ndice.
El comando \frontmatter hace que las páginas se numeren en romanos minúsculas, y
hace que los capı́tulos no estén numerados, aunque el tı́tulo de cada capı́tulo aparece en
la tabla de contenido; si usas otros comandos de seccionado aquı́, usa la versión *-versión
(véase Capı́tulo 6 [Seccionado], página 41).
El comando \mainmatter cambia el comportamiento de nuevo a la versión esperada y
restablece el número de página.
El comando \backmatter deja la numeración de páginas sola pero cambia los capı́tulos
de nuevo a no estar numerados.
Véase Sección A.4 [Plantilla de libro Larger], página 273, por ejemplo, usando estos tres
comandos.
{beforeskip}
{afterskip}
{style}}
redefine \section manteniendo su forma de llamada estándar \section*[toctitle]{title}
(en el que, como recordatorio, el star * es opcional). Véase Capı́tulo 6 [Seccionado], página 41.
Esto implica que cuando escribes un comando como \renewcommand{\section}{...}, el
\@startsection{...} debe ser el último en la definición. Ve los ejemplos a continuación.
name Nombre del contador utilizado para numerar la cabecera de seccionado. Este
contador se debe definir por separado. Lo más común es que esto sea sección,
subsección o párrafo. Aunque en esos casos el nombre del contador es el
mismo que el comando de seccionado en sı́ mismo, no tienes que usar el mismo
nombre.
Entonces \thename muestra el número del tı́tulo y \namemark es para los
encabezados de página. Ve el tercer ejemplo a continuación.
level Un número entero que proporciona la profundidad del comando de seccionado.
Véase Capı́tulo 6 [Seccionado], página 41, para la lista de números de nivel
estándar.
Si level es menor o igual que el valor del contador secnumdepth entonces los
tı́tulos para este comando de seccionado serán numerados (véase [Secciona-
do/secnumdepth], página 42). Por ejemplo, si secnumdepth es 1 en un article
luego el comando \section{Introducción} producirá una salida como “1 Intro-
ducción” mientras que \subsection{Debate} producirá salida como “Debate”,
sin el prefijo numérico.
Si level es menor o igual que el valor del contador tocdepth entonces la tabla
de contenido tendrá una entrada para esta unidad de seccionado (véase [Seccio-
nado/tocdepth], página 42). Por ejemplo, en un article, si tocdepth es 1, la
tabla de contenido será listar secciones pero no subsecciones.
indent Una longitud que da la sangrı́a de todas las lı́neas del tı́tulo con respecto al
margen izquierdo. Para que el tı́tulo quede alineado con el uso de la margen
0pt. Una sangrı́a negativa como -\parindent se moverá el tı́tulo en el margen
izquierdo.
beforeskip El valor absoluto de esta longitud es la cantidad de espacio vertical que se inserta
antes del tı́tulo de esta unidad de seccionado. Este espacio será descartado si
la unidad de seccionado comienza al principio de una página. Si este número
es negativo, el primer párrafo que sigue al encabezado no tendrá sangrı́a, si no
es negativo entonces el primer párrafo estará sangrado. (Ten en cuenta que el
negativo de 1pt plus 2pt minus 3pt es -1pt plus -2pt minus -3pt).
Por ejemplo, si beforeskip es -3.5ex plus -1ex minus -0.2ex entonces, para
iniciar la nueva unidad de seccionado, LATEX agregará unas 3.5 veces la altura
de una letra x en espacio vertical, y el primer párrafo en la sección no tendrá
sangrı́a. Usando una longitud elástica, con plus y minus, es una buena práctica
aquı́ ya que da LATEX más flexibilidad para crear la página (véase Capı́tulo 14
[Longitudes], página 138).
Capı́tulo 6: Seccionado 51
No puedes usar `\spacefactor' en modo vertical. significa que se te olvidó esto). Véase
Sección 12.3 [\makeatletter y \makeatother], página 122.
Esto colocará los tı́tulos de las secciones en negrita grande, centrados. Dice \renewcommand
porque las clases estándar de LATEX ya han definió una \section. Por la misma razón, no
define un contador section, o los comandos \thesection y \l@section.
\renewcommand\section{%
\@startsection{section}%
[name], página 50
{1}% [level], página 50
{0pt}% [indent], página 50
{-3.5ex plus -1ex minus -.2ex}% [beforeskip], página 50
{2.3ex plus.2ex}% [afterskip], página 51
{\centering\normalfont\Large\bfseries}% [style], página 51
}
Esto pondrá los tı́tulos de subsection en letras minúsculas, alineados con el párrafo.
\renewcommand\subsection{%
\@startsection{subsection}% [name], página 50
{2}% [level], página 50
{0em}% [indent], página 50
{-1ex plus 0.1ex minus -0.05ex}% [beforeskip], página 50
{-1em plus 0,2em}% [afterskip], página 51
{\scshape}% [style], página 51
}
Los ejemplos anteriores redefinieron los comandos de tı́tulo de unidades seccionales
existentes. Esto define uno nuevo, ilustrando el contador y las macros necesarias para
mostrar ese contador.
\setcounter{secnumdepth}{6}% muestra los contadores tan abajo
\newcounter{subsubparagraph}[subparagraph]% contador para numeración
\renewcommand{\thesubsubparagraph}% cómo mostrar
{\thesubparagraph.\@arabic\c@subsubparagraph}% numeración
\newcommand{\subsubparagraph}{\@startsection
{subsubparagraph}%
{6}%
{0em}%
{\baselineskip}%
{0.5\baselineskip}%
{\normalfont\normalsize}}\newcommand*\l@subsubparagraph{\@dott
\newcommand{\subsubparagraphmark}[1]{}% para encabezados de página
53
7 Referencias cruzadas
A menudo queremos algo como ‘Ve Teorema~31’. Pero escribir a mano el 31 es mala práctica.
En su lugar, debes escribir un label como \label{eq:GreensThm} y luego reference, como
con Ve ecuación~\ref{eq:GreensThm}. LATEX automáticamente calcula el número, lo pone
en la salida y cambiará ese número más tarde si es necesario.
7.1 \label
Sinopsis:
\label{key}
Asigna un número de referencia a key. En texto ordinario \label{key} asigna a key el
número de la unidad de seccionado actual. Dentro de un entorno con numeración, como un
entorno table o theorem, \label{clave} asigna a key el número de ese entorno. Recuperar
el número asignado con el comando \ref{key} (véase Sección 7.3 [\ref], página 54).
Un nombre de clave puede consistir en cualquier secuencia de letras, dı́gitos o caracteres
de puntuación. Las letras mayúsculas y minúsculas se distinguen, como de costumbre.
Una convención común es usar etiquetas que consisten en un prefijo y un sufijo separados
por dos puntos o punto. Por lo que, \label{fig:Post} es una etiqueta para una figura con
un retrato de Emil Post. Esto ayuda a evitar crear accidentalmente dos etiquetas con el
mismo nombre, y hace que tu fuente sea más legible. Algunos prefijos de uso común:
ch por capı́tulos
Capı́tulo 7: Referencias cruzadas 54
sec
subsec para comandos de seccionado de nivel inferior
fig para figuras
tab para tablas
eq para ecuaciones
En el archivo auxiliar se conserva la información de referencia como el texto de un comando
de la forma \newlabel{label}{{currentlabel}{pagenumber}}. Aquı́ currentlabel es el
valor actual de la macro \@currentlabel que generalmente se actualiza cada vez que llamas
a \refstepcounter{counter}.
A continuación, la tecla sec:test obtendrá el número de sección actual y la tecla
fig:test obtendrá el número de la figura. (Por cierto, coloca etiquetas después de los
subtı́tulos en las figuras y tablas).
\section{nombre sección}
\label{sec:test}
Esta es la Sección~\ref{sec:test}.
\begin{figure}
...
\caption{del tı́tulo}
\label{fig:test}
\end{figure}
Ve la figura~\ref{fig:test}.
7.2 \pageref
Sinopsis:
\pageref{key}
Proporciona el número de página del lugar en el texto donde se encuentra el comando
\label{key} correspondiente.
Si no hay \label{key} entonces obtienes algo como ‘Advertencia de LaTeX:
Referencia `th:GrensThm' en la página 1 indefinida en la lı́nea de entrada 11.’
A continuación, el \label{eq:main} se usa tanto para el número de fórmula y para el
número de página. (Ten en cuenta que las dos referencias son referencias directas por lo que
este documento tendrı́a que ser compilado dos veces para resolver aquellos).
El resultado principal es formula~\ref{eq:main} en la
página~\pageref{eq:main}.
...
\begin{equation} \label{eq:main}
\mathbf{P}=\mathbf{NP}
\end{equation}
7.3 \ref
Sinopsis:
\ref{key}
Capı́tulo 7: Referencias cruzadas 55
7.4 paquete xr
Sinopsis:
\usepackage{xr}
\externaldocument{document-basename}
o
\usepackage{xr}
\externaldocument[reference-prefix]{document-basename}
Hacer referencias cruzadas al documento externo document-basename.tex.
Aquı́ tienes un ejemplo: Si lectures.tex tiene esto en el preámbulo
\usepackage{xr}
\externaldocument{exercises}
\externaldocument[H-]{hints}
\externaldocument{answers}
entonces puede usar etiquetas de referencias cruzadas de los otros tres documentos. Supón
que exercises.tex tiene una lista enumerada que contiene este,
\item \label{exer:EulersThm} ¿Qué pasa si cada vértice tiene un grado impar?
y hints.tex tiene una lista enumerada con este,
\item \label{exerEulersThm} Distingue el caso de dos vértices.
y answers.tex tiene una lista enumerada con este,
\item \label{ansEulersThm} No hay camino de Euler, excepto si hay
exactamente dos vértices.
Después de compilar los ejercicios, sugerencias y documentos de respuestas, ingresar esto
en el cuerpo de lectures.tex dará como resultado la obtención de los números de referencia
de las conferencias utilizadas en los otros documentos.
Ve el ejercicio~\ref{exer:EulersThm}, con
Capı́tulo 7: Referencias cruzadas 56
Sugerencia~\ref{H-exer:EulersThm}. La solución es la
respuesta~\ref{ans:EulersThm}.
Se necesita el prefijo H- para la referencia del archivo de sugerencias porque la etiqueta
en el archivo de sugerencias es la misma que la etiqueta en el archivo de ejercicios. Sin ese
prefijo, ambas referencias obtendrı́an el número del archivo posterior.
Nota: si el documento usa el paquete hyperref entonces en lugar de xr, coloca
\usepackage{xr-hyper} antes del \usepackage{hyperref}. Además, si alguno de los
múltiples documentos usa hyperref entonces todos lo deben usar.
57
8 Entornos
LATEX proporciona muchos entornos para delimitar cierto comportamiento. Un entorno
comienza con \begin y termina con \end, como este:
\begin{nombre-entorno}
...
\end{nombre-entorno}
El nombre-entorno al principio debe coincidir exactamente con el de el fin. Por ejemplo,
la entrada \begin{table*}...\end{table} generará un error como: ‘! Error de LaTeX:
\begin{table*} en la lı́nea de entrada 5 terminada en \end{table}.’
Los entornos se ejecutan dentro de un grupo.
8.1 abstract
Sinopsis:
\begin{abstract}
...
\end{abstract}
Produce un resumen, posiblemente de varios párrafos. Este entorno solo se define en las
clases de documentos article y report (véase Capı́tulo 3 [Clases de documentos], página 7).
Usar el ejemplo a continuación en la clase article produce la exhibición de un párrafo.
La opción de clase de documento titlepage genera el resumen en una página separada
(véase Sección 3.1 [Opciones de la clase documento], página 7); este es el predeterminado
solo en la clase report.
\begin{abstract}
Comparamos todos los relatos conocidos de la propuesta realizada por
Porter Alexander
a Robert E Lee en el Palacio de Justicia de Appomattox que el
ejército continúa en una guerra de guerrillas, a que Lee se negó.
\end{abstract}
El siguiente ejemplo produce un resumen de una columna en un documento de dos
columnas (para una solución más flexible, usa el paquete abstract).
\documentclass[twocolumn]{article}
...
\begin{document}
\title{Babe Ruth como progenitor cultural: un enfoque atávico}
\author{Smith \\ Jones \\ Robinson\thanks{Subvención de seguimiento
ferroviario.}}
\twocolumn[
\begin{@twocolumnfalse}
\maketitle
\begin{abstract}
Ruth no era solo el sultán del Swat, era todo el equipo swat.
\end{abstract}
\end{@twocolumnfalse}
Capı́tulo 8: Entornos 58
]
{ % inserta a mano una nota al pie de página al final de la página
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\footnotetext[1]{Gracias por todo el pescado.}
}
8.2 array
Sinopsis:
\begin{array}{cols}
column 1 entry &column 2 entry ... &column n entry \\
...
\end{array}
o:
\begin{array}[pos]{cols}
column 1 entry &column 2 entry ... &column n entry \\
...
\end{array}
Produce un arreglo de matemáticas. Este entorno solo se puede usar en modo math (véase
Capı́tulo 17 [Modos], página 179), y normalmente aparece dentro de un entorno math como
equation (véase Sección 8.9 [equation], página 65). Dentro de cada fila, las entradas de la
columna están separadas por un ampersand, (&). Las filas terminan con barras invertidas
dobles (véase Sección 9.1 [\\], página 106).
Este ejemplo muestra un arreglo de tres por tres.
\begin{equation*}
\chi(x) =
\left| % cerca de la barra vertical
\begin{array}{ccc}
x-a &-b &-c \\
-d &x-e &-f \\
-g &-h &x-i
\end{array}
\right|
\end{equation*}
El argumento requerido cols describe el número de columnas, su alineación y el formato
de las regiones entre columnas. Por ejemplo, \begin{array}{rcl}...\end{array} da tres
columnas: el primero alineado a la derecha, el segundo centrado y el tercero alineado a la
izquierda. Sección 8.23 [tabular], página 92, para la descripción completa de cols y de otras
caracterı́sticas comunes de los dos entornos, incluido el argumento opcional pos.
Hay dos formas en que array difiere de tabular. La primera es que las entradas de array
se escriben en modo math, en estilo texto (véase Sección 16.7 [Estilos math], página 176)
excepto si la definición cols especifica la columna con p{...}, lo que hace que la entrada se
escriba en modo de texto. La segunda es que, en lugar del parámetro tabular \tabcolsep,
el espacio entre columnas de LATEX en un array está gobernado por \arraycolsep, que da
la mitad del ancho entre columnas. El predeterminado para esto es ‘5pt’ por lo que entre
dos columnas viene 10 pt de espacio.
Capı́tulo 8: Entornos 59
Para obtener arreglos con llaves el estándar es usar el paquete amsmath. Viene con
entornos pmatrix para un arreglo rodeado de paréntesis (...), bmatrix para un arreglo
entre corchetes [...], Bmatrix para un arreglo rodeado de llaves {...}, vmatrix para un
arreglo rodeado de barras verticales |...|, y Vmatrix para un arreglo rodeado por dobles
barras verticales ||...||, junto con otras construcciones de arreglo.
El siguiente ejemplo usa el paquete amsmath.
\usepackage{amsmath} % en el preámbulo
\begin{equation}
\begin{vmatrix}{cc} % arreglo con lı́neas verticales
a &b \\
c &d
\end{vmatrix}=ad-bc
\end{equation}
Hay muchos paquetes relacionados con arreglos. El paquete array tiene muchas extensio-
nes útiles, incluidos más tipos de columnas. El paquete dcolumn agrega un tipo de columna
para centrarse en un punto decimal. Para ambos ve la documentación en CTAN.
8.3 center
Sinopsis:
\begin{center}
line1 \\
line2 \\
...
\end{center}
Crea un nuevo párrafo que consta de una secuencia de lı́neas que está centrado dentro de
los márgenes izquierdo y derecho. Usa doble barra invertida, \\, para obtener un salto de
lı́nea (véase Sección 9.1 [\\], página 106). Si algún texto es demasiado largo para caber en
una lı́nea, entonces LATEX insertará un salto de lı́nea que evita la separación de sı́labas y
evita estirar o encoger cualquier espacio entre palabras.
Este entorno inserta espacio por encima y por debajo del cuerpo del texto. Sección 8.3.1
[\centering], página 60, para evitar dicho espacio, por ejemplo dentro de un entorno figure.
Este ejemplo produce tres lı́neas centradas. Hay espacio extra vertical entre las dos
últimas lı́neas.
\begin{center}
Una Tesis Presentada en Cumplimiento Parcial \\
de los Requisitos de \\[0.5ex]
la Escuela de Ingenierı́a Ambiental
\end{center}
En este ejemplo, según el ancho de lı́nea de la página, LATEX puede elegir un salto de
lı́nea para la parte anterior a la barra invertida doble. Si es ası́, será centrar cada una de las
dos lı́neas y si no centrará la única lı́nea. Entonces LATEX se romperá en la barra invertida
doble y centrará el final.
\begin{center}
Capı́tulo 8: Entornos 60
8.3.1 \centering
Sinopsis:
{\centering ... }
o
\begin{group}
\centering ...
\end{group}
Centra el material en su entorno. Se utiliza con mayor frecuencia dentro de un entorno
como figure, o en un parbox.
La declaración \centering de este ejemplo hace que el gráfico sea centrado horizontal-
mente.
\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{ctan_lion.png}
\caption{CTAN Lion} \label{fig:CTANLion}
\end{figure}
El entorno de este \centering termina con \end{figure}.
A diferencia del entorno center, el comando \centering no agrega espacio vertical por
encima y por debajo del texto. Esa es su ventaja en el ejemplo anterior; no hay un exceso de
espacio.
Tampoco comienza un nuevo párrafo; simplemente cambia cómo LATEX da formato a
las unidades de párrafo. Si ww {\centering xx \\ yy} zz está rodeado de lı́neas en blanco,
entonces LATEX creará un párrafo cuya primera lı́nea ‘ww xx’ está centrada y cuya segunda
lı́nea, no centrada, contiene ‘yy zz’. Usualmente lo que se desea es para el alcance de la
declaración para contener una lı́nea en blanco o el comando \end de un entorno como figure
o table que termina la unidad de párrafo. Por lo tanto, si {\centering xx \\ yy\par} zz
está rodeado de lı́neas en blanco, entonces crea un nuevo párrafo con dos lı́neas centradas
‘xx’ y ‘yy’, seguidas de un nuevo párrafo con ‘zz’ que tiene el formato habitual.
8.4 Description
Sinopsis:
\begin{description}
\item[etiqueta del primer elemento] texto del primer
elemento
Capı́tulo 8: Entornos 61
8.5 displaymath
Sinopsis:
\begin{displaymath}
texto matemático
\end{displaymath}
Capı́tulo 8: Entornos 62
8.6 document
El entorno document incluye todo el cuerpo de un documento. Se requiere en todos los
documentos LATEX. Véase Sección 2.1 [Comenzar y terminar], página 2.
8.6.1 \AtBeginDocument
Sinopsis:
\AtBeginDocument{code}
Guarda code y ejecútelo cuando \begin{document} sea ejecutado, al final del preámbulo.
El código se ejecuta después de las tablas de selección de letras se han configurado, por lo
que la letra normal para el documento es la letra actual. Sin embargo, el código se ejecuta
como parte del preámbulo para que no puedas hacer ninguna composición tipográfica con él.
Puedes emitir este comando más de una vez; las lı́neas de código sucesivas se ejecutarán
en el orden que les diste.
8.6.2 \AtEndDocument
Sinopsis:
\AtEndDocument{code}
Capı́tulo 8: Entornos 63
Guarda code y ejecútalo cerca del final del documento. Especı́ficamente, se ejecuta
cuando se ejecuta \end{document}, antes de que termine la página final y antes de que
quede flotando se procesan los entornos. Si deseas que parte del código se ejecute después de
estos dos procesos, incluye un \clearpage en el punto apropiado en code.
Puedes emitir este comando más de una vez; las lı́neas de código sucesivas se ejecutarán
en el orden que les diste.
8.7 enumerate
Sinopsis:
\begin{enumerate}
\item[etiqueta opcional del primer elemento] texto del
primer elemento
\item[etiqueta opcional del segundo elemento] texto del
segundo elemento
...
\end{enumerate}
Entorno para producir una lista numerada de elementos. El formato de la numeración de
las etiquetas depende del nivel de anidamiento de este entorno; ve abajo. La numeración de
nivel superior predeterminada es ‘1.’, ‘2.’, etc. Cada entorno de lista enumerate debe tener
al menos un elemento; no tiene ninguna causa el error LATEX ‘Algo anda mal, tal vez un
\item perdido’.
Este ejemplo muestra a los dos primeros finalistas en el maratón olı́mpico de 1908. Como
lista de nivel superior, las etiquetas aparecerı́an como ‘1.’ y ‘2.’.
\begin{enumerate}
\item Johnny Hayes (USA)
\item Charles Hefferon (RSA)
\end{enumerate}
Inicia la lista de elementos con el comando \item (véase Sección 8.16.1 [\item], página 75).
Si le das a \item un argumento opcional siguiéndolo con corchetes, como en \item[Etiqueta
intersticial], entonces el siguiente elemento continuará la secuencia interrumpida (véase
Sección 8.16.1 [\item], página 75). Es decir, obtendrás etiquetas como ‘1.’, entonces
‘Etiqueta intersticial’, luego ‘2.’. Después de \item hay texto opcional, que puede
contener varios párrafos.
Las enumeraciones se pueden anidar dentro de otros entornos enumerate, o dentro de cual-
quier entorno de creación de párrafos como itemize (véase Sección 8.14 [itemize], página 69),
hasta cuatro niveles de profundidad. Esto le proporciona el valor LATEX predeterminado para
el formato en cada nivel de anidamiento, donde 1 es el nivel superior, el nivel más exterior.
1. número arábigo seguido de un punto: ‘1.’, ‘2.’, . . .
2. letra minúscula entre paréntesis: ‘(a)’, ‘(b)’ . . .
3. número romano en minúsculas seguido de un punto: ‘i.’, ‘ii.’, . . .
4. letra mayúscula seguida de un punto: ‘A.’, ‘B.’, . . .
El entorno enumerate utiliza los contadores \enumi hasta \enumiv (véase Capı́tulo 13
[Contadores], página 134).
Capı́tulo 8: Entornos 64
Para otros entornos principales de listas etiquetadas LATEX, Sección 8.4 [description],
página 60, e Sección 8.14 [itemize], página 69. Para obtener información sobre el dise~ no de
parámetros de lista, incluidos los valores predeterminados, y para obtener información sobre
personalizar el dise~no de la lista, Sección 8.16 [list], página 71. El paquete enumitem es útil
para personalizar listas.
Para cambiar el formato de la etiqueta usa \renewcommand (véase Sección 12.1 [\new-
command y \renewcommand], página 119) en los comandos \labelenumi a través de
\labelenumiv. Por ejemplo, esta lista de primer nivel será etiquetada con letras mayúsculas,
en negrita y sin punto final.
\renewcommand{\labelenumi}{\textbf{\Alph{enumi}}}
\begin{enumerate}
\item Se muestra en negrita A
\item Se muestra en negrita B
\end{enumerate}
Para obtener una lista de comandos de contraetiquetado, consulta Sección 13.1 [\alph
\Alph \arabic \roman \Roman \fnsymbol], página 134.
8.8 eqnarray
El entorno eqnarray está obsoleto. Tiene infelicidades, incluyendo el espaciado que es
inconsistente con otros elementos matemáticos. (Ve “¡Evita eqnarray!” por Lars Madsen
https://tug.org/TUGboat/tb33-1/tb103madsen.pdf). Nuevos documentos deben incluir
el paquete amsmath y usar el que muestra entornos matemáticos proporcionados allı́, co-
mo el entorno align. Incluimos una descripción solo para completar y para trabajar con
documentos antiguos.
Sinopsis:
\begin{eqnarray}
primera fórmula a la izquierda, primera fórmula en el
medio y primera fórmula a la derecha \\
...
\end{eqnarray}
o
\begin{eqnarray*}
primera fórmula a la izquierda, primera fórmula en el
medio y primera fórmula a la derecha \\
...
\end{eqnarray*}
Muestra una secuencia de ecuaciones o desigualdades. Los lados izquierdo y derecho se
escriben en el modo display, mientras que el medio se escribe en el modo texto.
Es similar a un entorno array de tres columnas, con elementos dentro de una fila separada
por un ampersand (&), y con filas separadas por dobles barras inversas \\). La forma de
estrella del salto de lı́nea (\\*) también se puede usar para separar ecuaciones, y no permitirá
un salto de página allı́ (véase Sección 9.1 [\\], página 106).
La forma sin estrella eqnarray coloca un número de ecuación en cada lı́nea (usando el
contador equation), a menos que esa lı́nea contenga un comando \nonumber. La forma
Capı́tulo 8: Entornos 65
destacada eqnarray* omite numeración de ecuaciones, mientras que por lo demás son
iguales.
El comando \lefteqn se usa para dividir fórmulas largas en lı́neas. Escribe tu argumento
en estilo de visualización alineado a la izquierda en un cuadro de ancho cero.
Este ejemplo muestra tres lı́neas. Las dos primeras lı́neas forman una desigualdad, mientras
que la tercera lı́nea no tiene entrada por el lado izquierdo.
\begin{eqnarray*}
\lefteqn{x_1+x_2+\cdots+x_n} \\
&\leq &y_1+y_2+\cdots+y_n \\
&= &z+y_3+\cdots+y_n
\end{eqnarray*}
8.9 equation
Sinopsis:
\begin{equation}
texto matemático
\end{equation}
Lo mismo que un entorno displaymath (véase Sección 8.5 [displaymath], página 61)
excepto que LATEX pone un número de ecuación al ras del margen derecho. El número de la
ecuación se genera usando el contador equation.
No debe haber lı́neas en blanco entre \begin{equation} y \begin{equation}, o LATEX
te dirá que falta el signo de dólar.
El paquete amsmath tiene una extensas facilidades para mostrar ecuaciones. Los nuevos
documentos deben incluir este paquete.
8.10 figure
Sinopsis:
\begin{figure}[placement]
cuerpo de figura
\caption[loftitle]{title} % opcional
\label{label} % opcional
\end{figure}
o:
\begin{figure*}[placement]
cuerpo de figura
\caption[loftitle]{title} % opcional
\label{label} % opcional
\end{figure*}
Las figuras son para material que no forma parte del texto normal. Un ejemplo es material
que no se puede dividir en dos páginas, tal como gráficos. Debido a esto, LATEX no escribe
cifras en secuencia con texto normal, sino que los “hace flotar” a un lugar conveniente, como
la parte superior de una página siguiente (véase Sección 5.7 [Flotantes], página 36).
Capı́tulo 8: Entornos 66
8.11 filecontents
Sinopsis:
\begin{filecontents}[option]{filename}
text
\end{filecontents}
o
\begin{filecontents*}[option]{filename}
text
\end{filecontents*}
Crea un archivo llamado filename en el directorio actual (o el directorio de salida,
si se especifica; véase [directorio de salida], página 268) y escribir text en él. De forma
predeterminada, un archivo existente no se sobrescribe.
La versión sin estrella del entorno filecontents prefija el contenido del archivo creado
con un encabezado de comentarios TEX; ve el siguiente ejemplo. La versión protagonista
filecontents* no incluye el encabezado.
Las opciones posibles son::
Capı́tulo 8: Entornos 67
force
overwrite
La opción overwrite para filecontents Sobrescribe un archivo existente.
noheader Omite el encabezado. Equivale a usar filecontents*.
nosearch Solo verifica el directorio actual (y el directorio de salida, si se ha especificado)
para un archivo existente, no la ruta de búsqueda completa.
Estas opciones se agregaron en una versión de LATEX de 2019.
Este entorno se puede utilizar en cualquier parte del preámbulo, aunque a menudo aparece
antes del comando \documentclass. Esta comúnmente se usa para crear un .bib u otro
archivo de datos similar desde el origen del documento principal, para que el archivo fuente
sea autónomo. Del mismo modo, se puede usar para crear un estilo personalizado o un
archivo de clase, nuevamente haciendo que la fuente sea autónoma.
Por ejemplo, este documento::
\documentclass{article}
\begin{filecontents}{JH.sty}
\newcommand{\myname}{Jim Hef{}feron}
\end{filecontents}
\usepackage{JH}
\begin{document}
Artı́culo por \myname.
\end{document}
produce este archivo JH.sty:
%% Archivo LaTeX2e `JH.sty'
%% generado por el entorno `filecontents'
%% de la fuente `test' el 12/10/2015.
%%
\newcommand{\myname}{Jim Hef{}feron}
8.12 flushleft
Sinopsis:
\begin{flushleft}
line1 \\
line2 \\
...
\end{flushleft}
Un entorno que crea un párrafo cuyas lı́neas están al ras del margen izquierdo e irregular
al lado derecho. Si tienes filas demasiado largas entonces LATEX las dividirá de una manera
que evite la separación silábica y alargar o achicar los espacios entre palabras. Para forzar una
nueva lı́nea usa una doble barra invertida, \\. Para la forma de declaración Sección 8.12.1
[\raggedright], página 68.
Esto crea un cuadro de texto que tiene como máximo 3 pulgadas de ancho, con el texto
alineado a la izquierda e irregular a la derecha.
\noindent\begin{minipage}{3in}
Capı́tulo 8: Entornos 68
\begin{flushleft}
Una oración larga que será dividida por \LaTeX{}
en un lugar conveniente. \\
Y, una nueva lı́nea forzada por la doble barra invertida.
\end{flushleft}
\end{minipage}
8.12.1 \raggedright
Sinopsis:
{\raggedright ... }
o
\begin{environment} \raggedright
...
\end{environment}
Una declaración que hace que las lı́neas queden al ras del margen izquierdo e irregular a
la derecha. Se puede usar dentro de un environment como quote o en un parbox. Para la
forma del entorno Sección 8.12 [flushleft], página 67.
A diferencia del entorno flushleft, \raggedright el comando no inicia un nuevo párrafo;
solo cambia en cómo LATEX da formato a las unidades de párrafo. Para afectar el formato de
una unidad de párrafo, el alcance de la declaración debe contener la lı́nea en blanco o el
comando \end que finaliza la unidad de párrafo.
Aquı́ \raggedright en cada segunda columna evita que LATEX haga una composición
tipográfica incómoda para encajar el texto en la columna reducida. Ten en cuenta que
\raggedright está dentro de llaves {...} para delimitar su efecto.
\begin{tabular}{rp{2in}}
Equipo alfa &{\raggedright Este equipo hace todo el trabajo real.} \\
Equipo beta &{\raggedright Este equipo se asegura de que el
enfriador de agua nunca esté vacı́o.} \\
\end{tabular}
8.13 flushright
\begin{flushright}
line1 \\
line2 \\
...
\end{flushright}
Un entorno que crea un párrafo cuyas lı́neas están al ras del margen derecho e irregular
al izquierdo. Si tienes filas demasiado largas para ajustarse a los márgenes, entonces LATEX
los dividirá de una manera que evita la división con guiones y la ampliación o reducción de
los espacios entre palabras. Para forzar una nueva lı́nea usa una barra invertida doble, \\.
Para la forma de declaración Sección 8.13.1 [\raggedleft], página 69.
Para ver un ejemplo relacionado con este entorno, Sección 8.12 [flushleft], página 67,
donde uno solo tiene mutatis mutandis para reemplazar flushleft por flushright.
Capı́tulo 8: Entornos 69
8.13.1 \raggedleft
Sinopsis:
{\raggedleft ... }
o
\begin{environment} \raggedleft
...
\end{environment}
Una declaración que hace que las lı́neas queden al ras del margen derecho e izquierdo
irregular. Se puede usar dentro de un environment como quote o en un parbox. Para la
forma del entorno Sección 8.13 [flushright], página 68.
A diferencia del entorno flushright, \raggedleft el comando no inicia un nuevo párrafo;
solo cambia cómo LATEX da formato a las unidades de párrafo. Para afectar el formato de
una unidad de párrafo, el alcance de la declaración debe contener la lı́nea en blanco o el
comando \end que finaliza la unidad de párrafo.
Para ver un ejemplo relacionado con este entorno, Sección 8.12.1 [\raggedright], página 68,
donde uno solo tiene mutatis mutandis para reemplazar \raggedright por \raggedleft.
8.14 itemize
Sinopsis:
\begin{itemize}
\item[etiqueta opcional del primer elemento] texto del
primer elemento
\item[etiqueta opcional del segundo elemento] texto del
segundo elemento
...
\end{itemize}
Produce una lista desordenada, a veces denominada lista con vi~
netas. Ahı́ debe haber al
menos un \item dentro del entorno; no tiene ninguna causa el error LATEX ‘Algo anda mal,
tal vez un \item faltante’.
Esto da una lista de dos elementos.
\begin{itemize}
\item Dibujo a lápiz y acuarela por Cassandra
\item Retrato de arroz
\end{itemize}
Con la configuración regional predeterminada — sin cargar, por ejemplo, el paquete babel
con otro idioma que no sea inglés—como una lista de nivel superior cada etiqueta saldrı́a
como una vi~neta, •. El formato del etiquetado depende del nivel de anidamiento; ve abajo.
Inicia la lista de elementos con el comando \item (véase Sección 8.16.1 [\item],
página 75). Si le das a \item un argumento opcional entre corchetes siguiéndolo, como
en \item[Etiqueta optional], entonces de manera predeterminada Etiqueta opcional
aparecerá en negrita y alineada a la derecha, por lo que se podrı́a extender hasta el
margen izquierdo. Para las etiquetas que están niveladas a la izquierda, consulta el entorno
Capı́tulo 8: Entornos 70
Sección 8.4 [description], página 60. Después del \item está el texto del elemento, que
puede estar vacı́o o contener varios párrafos.
Las listas desordenadas se pueden anidar una dentro de otra, hasta cuatro niveles de
profundidad. También se pueden anidar en otros entornos de creación de párrafos, como
enumerate (véase Sección 8.7 [enumerate], página 63).
El entorno itemize usa los comandos \labelitemi a través de \labelitemiv para
generar la etiqueta predeterminada (ten en cuenta la convención de números romanos en
minúsculas al final de los nombres de los comandos que significan el nivel de anidamiento).
Estas son las marcas predeterminadas en cada nivel.
1. • (bullet, de \textbullet)
2. -- (bold en-dash, de \normalfont\bfseries\textendash)
3. * (asterisco, de \textasteriskcentered)
4. · (punto centrado verticalmente, de \textperiodcentered)
Cambia las etiquetas con \renewcommand. Por ejemplo, esto hace que el primer nivel use
diamantes.
\renewcommand{\labelitemi}{$\diamond$}
La distancia entre el margen izquierdo del entorno envolvente y el margen izquierdo de la
lista itemize está determinado por el parámetros \leftmargini a \leftmarginvi. (Esto
también usa la convención de usar números romanos en minúsculas al final del nombre del
comando para indicar el nivel de anidamiento). Los valores predeterminados son: 2.5em en
el nivel 1 (2em en modo de dos columnas), 2.2em en el nivel 2, 1.87em en el nivel 3 y 1.7em
en el nivel 4, con valores más peque~ nos para niveles anidados más profundos.
Para otros entornos principales de listas etiquetadas LATEX, Sección 8.4 [description],
página 60, y Sección 8.7 [enumerate], página 63. itemize, los entornos enumerate y
description usan la misma lista de parámetros de dise~ no. Para obtener una descripción,
incluidos los valores predeterminados, y para obtener información sobre cómo personalizar el
dise~no de la lista, Sección 8.16 [list], página 71. El paquete enumitem es útil para personalizar
listas.
Este ejemplo reduce en gran medida el espacio del margen para los elementos detallados
más externos de listas.
\setlength{\leftmargini}{1.25em} % predeterminado 2.5em
Especialmente para listas con artı́culos cortos, puede ser deseable eludir espacio entre
elementos. Aquı́ hay un ejemplo que define un entorno itemize* sin espacios adicionales
entre elementos o entre párrafos dentro de un solo elemento (\parskip no es especı́fico de la
lista, véase Sección 15.3 [\parindent y \parskip], página 147):
\newenvironment{itemize*}%
{\begin{itemize}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}}%
\setlength{\parskip}{0pt}}%
{\end{itemize}}
8.16 list
Sinopsis:
\begin{list}{labeling}{spacing}
\item[etiqueta opcional del primer elemento] texto del
primer elemento
\item[etiqueta opcional del segundo elemento] texto del
segundo elemento
...
\end{list}
Un entorno para la construcción de listas.
Ten en cuenta que este entorno no suele aparecer en el cuerpo del documento. La mayorı́a
de las listas creadas por los autores de LATEX son las que vienen estándar: los entornos
description, enumerate e itemize (véase Sección 8.4 [description], página 60, Sección 8.7
[enumerate], página 63, y Sección 8.14 [itemize], página 69).
En cambio, el entorno list se usa con mayor frecuencia en macros. Por ejemplo, muchos
entornos LATEX estándar que no funcionan inmediatamente parecen ser listas, de hecho
están construidos usando list, incluyendo quotation, quote y center (véase Sección 8.20
[comillas y citas], página 88, véase Sección 8.3 [center], página 59).
Este usa el entorno list para definir un nuevo entorno personalizado.
\newcounter{namedlistcounter} % número de elementos
\newenvironment{named}
{\begin{list}
{Item~\Roman{namedlistcounter}.} % etiquetado
{\usecounter{namedlistcounter} % establece el contador
\setlength{\leftmargin}{3.5em}} % establece el espaciado
}
{\end{list}}
\begin{named}
\item Se muestra como ``Item~I.''
\item[Etiqueta especial.] Se muestra como ``Etiqueta especial.''
\item Se muestra como ``Item~II.''
\end{named}
El primer argumento obligatorio labeling especifica el valor predeterminado de etiquetado
de los elementos de la lista. Puede contener comandos de texto y LATEX, como arriba donde
contiene ‘Item’ y ‘\Roman{...}’. LATEX forma la etiqueta poniendo el argumento labeling en
un cuadro de ancho \labelwidth. Si la etiqueta es más ancha que eso, el material adicional
se extiende a la derecha. Al hacer una instancia de una list puedes redefinir el etiquetado
predeterminado dando a \item un argumento opcional al incluir corchetes y el texto, como
en la \item[Etiqueta especial.]; véase Sección 8.16.1 [\item], página 75.
El segundo argumento obligatorio spacing tiene una lista de comandos. Esta lista puede
estar vacı́a. Un comando que puede entrar aquı́ es \usecounter{countername} (véase
Sección 13.2 [\usecounter], página 135). Utiliza este diciéndole a LATEX que numere los
elementos usando el contador dado. El contador se restablecerá a cero cada vez que LATEX
Capı́tulo 8: Entornos 72
ingrese al entorno, y el contador se incrementa en uno cada vez que LATEX encuentra un
\item que no tiene un argumento opcional.
Otro comando que puede ir en spacing es \makelabel, que construye el cuadro de etique-
tas. De manera predeterminada pone el contenido volcado a la derecha. Su único argumento
es la etiqueta, que composiciones tipográficas en modo LR (véase Capı́tulo 17 [Modos],
página 179). Un ejemplo de cambiar su definición es la del ejemplo del named anterior, antes
de la definición del entorno a~
nade \newcommand{\namedmakelabel}[1]{\textsc{#1}}, y
entre el comando \setlength y el paréntesis que cierra el argumento spacing también
agrega \let\makelabel\namedmakelabel. Luego, las etiquetas se compondrán en versalitas.
Del mismo modo, cambiando la segunda lı́nea del código a \let\makelabel\fbox pone
las etiquetas dentro de una caja enmarcada. A continuación se muestra otro ejemplo del
comando \makelabel, en la definición del entorno redlabel.
También a menudo en spacing hay comandos para redefinir el espacio para la lista. A
continuación se muestran los parámetros de espaciado con sus valores predeterminados.
(Los valores predeterminados para entornos derivados como itemize pueden ser diferentes
a los valores que se muestran aquı́). Consulta también la siguiente figura de lista. Cada
uno tiene una longitud (véase Capı́tulo 14 [Longitudes], página 138). Los espacios verti-
cales normalmente son longitudes elásticas, con componentes plus y minus, para darle
flexibilidad a TEX en la configuración de la página. Cambiar cada uno con un comando co-
mo \setlength{itemsep}{2pt plus1pt minus1pt}. Para algunos efectos, estas longitudes
deben ser cero o negativas.
\itemindent
Sangrı́a de espacio horizontal adicional, más allá de leftmargin, de la primera
lı́nea de cada elemento. Su valor predeterminado es 0pt.
\itemsep Espacio vertical entre elementos, más allá del \parsep. Los valores predeter-
minados para los tres primeros niveles en las clases LATEX ‘article’, ‘book’ y
‘report’ con un tama~ no de 10 puntos son: 4pt plus2pt minus 1pt, \parsep
(es decir, 2pt plus 1pt minus 1pt), y \topsep (es decir, 2pt plus 1pt minus
1pt). Los valores predeterminados en 11 puntos son: 4.5pt plus 2pt minus 1pt,
\parsep (es decir, 2pt plus 1pt minus 1pt) y \topsep (es decir, 2pt plus 1pt
minus 1pt). Los valores predeterminados en 12 puntos son: 5pt plus 2.5pt
minus 1pt, \parsep (es decir, 2.5pt plus 1pt minus 1pt), y \topsep (es decir,
2.5pt plus 1pt minus 1pt).
\labelsep
Espacio horizontal entre la etiqueta y el texto de un elemento. El valor predeter-
minado para las clases LATEX ‘article’, ‘book’, y ‘report’ es 0.5em.
\labelwidth
Ancho horizontal. La caja que contiene la etiqueta nominalmente es ası́ de ancha.
Si \makelabel devuelve un texto más ancho que este, entonces la primera lı́nea
del elemento se sangrará para dejar espacio para este material adicional. Si
\makelabel devuelve texto de ancho menor o igual que \labelwidth entonces
el valor predeterminado de LATEX es que la etiqueta está compuesta al ras en
una caja de este ancho.
El borde izquierdo del cuadro de etiqueta es \leftmargin+\itemindent-
\labelsep-\labelwidth del margen izquierdo del entorno envolvente.
Capı́tulo 8: Entornos 73
v1
First item, second paragraph
h2 v2
Label Second item
h3 h4 h5 v3
Surrounding environment, following material
de página para una lista de nivel superior. El ancho de lı́nea utilizado para componer los
elementos de la lista es \linewidth (véase Sección 5.5 [Parámetros de composición de
página], página 32). Por ejemplo, establece el margen izquierdo de la lista para que sea una
cuarta parte de la distancia entre los márgenes izquierdo y derecho del entorno envolvente
con \setlength{\leftmargin}{0.25\linewidth}.
Los saltos de página en una estructura de lista están controlados por los tres parámetros
a continuación. Para cada uno, el valor predeterminado de LATEX es -\@lowpenalty, es
decir, -51. Porque es negativo, de alguna manera fomenta un salto de página en cada punto.
Cambiarlo con, por ejemplo, \@beginparpenalty=9999; un valor de 10000 prohı́be un salto
de página.
\@beginparpenalty
La penalización de salto de página por romper antes de la lista (predeterminado
-51).
\@itempenalty
La penalización por salto de página al romper antes de un elemento de lista
(predeterminado -51).
\@endparpenalty
La penalización de salto de página por romper después de una lista (predetermi-
nado -51).
El paquete enumitem es útil para personalizar listas.
Este ejemplo tiene las etiquetas en rojo. Están numeradas, y el borde izquierdo de
la etiqueta se alinea con el borde izquierdo del texto del elemento. Véase Sección 13.2
[\usecounter], página 135.
\usepackage{color}
\newcounter{cnt}
\newcommand{\makeredlabel}[1]{\textcolor{red}{#1.}}
\newenvironment{redlabel}
{\begin{list}
{\arabic{cnt}}
{\usecounter{cnt}
\setlength{\labelwidth}{0em}
\setlength{\labelsep}{0.5em}
\setlength{\leftmargin}{1.5em}
\setlength{\itemindent}{0.5em} % equals \labelwidth+\labelsep
\let\makelabel=\makeredlabel
}
}
{\end{list}}
Una entrada en una lista. Las entradas están precedidas por una etiqueta, cuyo valor
predeterminado depende del tipo de lista.
Porque la etiqueta opcional está entre corchetes ‘[...]’, si tienes un elemento cuyo texto
comienza con [, tienes que ocultar el corchete dentro de las llaves, como en: \item {[} es
un corchete de apertura; de lo contrario, LATEX pensará en la marca como el comienzo de
una etiqueta opcional.
Del mismo modo, si el artı́culo tiene la etiqueta opcional y necesitas un corchete de cierre
dentro de esa etiqueta, lo debes ocultar en la misma forma: \item[Corchete de cierre,
{]}]. Véase Sección 2.4 [Sintaxis del comando LATEX], página 5.
En este ejemplo, la lista de enumeración tiene dos elementos que usan el valor de etiqueta
predeterminado y otra que usa la etiqueta opcional.
\begin{enumerate}
\item Moe
\item[a veces] Shemp
\item Larry
\end{enumerate}
El primer elemento está etiquetado como ‘1.’, el segundo elemento está etiquetado ‘a
veces’, y el tercer elemento está etiquetado como ‘2.’. Porque de la etiqueta opcional en el
segundo artı́culo, el tercer artı́culo no está etiquetado ‘3.’.
8.17 math
Sinopsis:
\begin{math}
math
\end{math}
El entorno math inserta material dado math dentro del texto en ejecución. \(...\) y
$...$ son sinónimos. Véase Capı́tulo 16 [Fórmulas math], página 149.
8.18 minipage
Sinopsis:
\begin{minipage}{width}
contenido
\end{minipage}
o
\begin{minipage}[position][height][inner-pos]{width}
contenido
\end{minipage}
Pon contenido en un cuadro que tenga un ancho de width. Esto es como una versión
peque~na de una página; puede contener sus propias notas al pie, listas detalladas, etc. (Hay
algunas restricciones, incluyendo que no puede tener flotante). Este cuadro no se dividirá entre
páginas. Entonces minipage es similar a \parbox (véase Sección 20.3 [\parbox], página 202)
pero aquı́ puedes tener párrafos.
Este ejemplo tendrá 3 pulgadas de ancho y tiene dos párrafos.
\begin{minipage}{3in}
Stephen Kleene fue uno de los fundadores de la Teorı́a de la
Computación.
t Alinea la lı́nea base de la lı́nea superior en la minipage con la lı́nea base del
texto circundante (el \vtop de TEX simple).
b Alinea la lı́nea base de la lı́nea inferior en la minipage con la lı́nea base del
texto circundante (el \vbox de TEX simple).
Para ver los efectos de estos, contrasta esta ejecución
---\begin{minipage}[c]{0.25in}
primero\\ segundo\\ tercero
\end{minipage}
con los resultados de cambiar c a b o t.
El argumento opcional height es una longitud rı́gida (véase Capı́tulo 14 [Longitudes],
página 138). Establece la altura de la minipage. Puedes ingresar cualquier valor más grande
que, igual o más peque~ no que el código natural de minipage height y LATEX no darán un
error o una advertencia. También puedes establecer a una altura de cero o un valor negativo.
El último argumento opcional inner-pos controla la ubicación de contenido dentro del
cuadro. Estos son los valores posibles (el predeterminado es el valor de position).
t Coloca contenido en la parte superior del cuadro.
c Lo coloca en el centro vertical.
b Lo coloca en el fondo de la caja.
s Estira contenido verticalmente; debe contener espacio elástico verticalmente.
El argumento inner-pos tiene sentido cuando la opción height se establece en un valor
mayor que la altura natural de minipage. Para ver el efecto de las opciones, ejecuta este
ejemplo con las distintas opciones en lugar de b.
Texto antes
\begin{center}
---\begin{minipage}[c][3in][b]{0.25\textwidth}
primero\\ segundo\\ tercero
\end{minipage}
\end{center}
Texto después
De manera predeterminada, los párrafos no tienen sangrı́a en una minipage. Cambio que
con un comando como \setlength{\parindent}{1pc} en el inicio de contenido.
Las notas al pie en un entorno minipage se manejan de una manera que es particularmente
útil para poner notas a pie de página en figuras o tablas. Para el comando \footnote o
\footnotetext coloca la nota al pie en la parte inferior de la minipágina en lugar de en la
parte inferior de la página, y usa el contador \mpfootnote en lugar del contador ordinario
footnote (véase Capı́tulo 13 [Contadores], página 134).
Esto coloca la nota al pie en la parte inferior de la tabla, no en la parte inferior de la
página.
\begin{center} % centra la minipágina en la lı́nea
\begin{minipage}{2.5in}
\begin{center} % centra la tabla dentro de la minipágina
\begin{tabular}{ll}
Capı́tulo 8: Entornos 79
8.19 picture
Sinopsis:
\begin{picture}(width,height)
comando picture
\end{picture}
o
\begin{picture}(width,height)(xoffset,yoffset)
Capı́tulo 8: Entornos 80
comando picture
\end{picture}
Donde puede haber cualquier número de comando picture.
Un entorno para crear imágenes simples que contienen lı́neas, flechas, cuadros, cı́rculos y
texto. Este entorno no es obsoleto, sino que los nuevos documentos suelen utilizar sistemas
de creación de gráficos mucho más potentes, como TikZ, PSTricks, MetaPost o Asymptote.
Ninguno de estos están cubiertos en este documento; ve CTAN.
Para empezar, aquı́ hay un ejemplo que muestra la ley del paralelogramo para sumar
vectores.
\setlength{\unitlength}{1cm}
\begin{picture}(6,6) % cuadro de imagen tendrá 6 cm de ancho por
% 6 cm de alto
\put(0,0){\vector(2,1){4}} % por cada 2 sobre este vector sube 1
\put(2,1){\makebox(0,0)[l]{\ primer etapa}}
\put(4,2){\vector(1,2){2}}
\put(5,4){\makebox(0,0)[l]{\ segunda etapa}}
\put(0,0){\vector(1,1){6}}
\put(3,3){\makebox(0,0)[r]{sum\ }}
\end{picture}
El entorno picture tiene un argumento requerido, un par de números reales positivos
(width, height). Multiplica estos por el valor de \unitlength para obtener el tama~
no nominal
de la salida, es decir, el espacio que reserva LATEX en la página de salida. Este tama~ no
nominal no es necesario saber qué tan grande es realmente la imagen; L TEX dibujará cosas
A
de picture fuera de la caja de la imagen.
Este entorno también tiene un argumento opcional (xoffset, yoffset). Se utiliza para
cambiar el origen. A diferencia de la mayorı́a de los argumentos opcionales, éste no está
contenido entre corchetes. Al igual que con el argumento requerido, consiste en un par de
dos números reales, pero estos también pueden ser negativos o nulos. Multiplica estos por
\unitlength para obtener las coordenadas del punto en la esquina inferior izquierda de la
imagen.
Por ejemplo, si \unitlength se ha establecido en 1mm, el comando
\begin{picture}(100,200)(10,20)
produce una caja de 100 milı́metros de ancho y 200 milı́metros de alto. El origen de la
imagen es el punto (10mm, 20mm) y, por lo tanto, la esquina inferior izquierda está allı́, y la
esquina superior derecha está en (110mm, 220 mm). Cuando primero dibujes una imagen,
normalmente omite el argumento opcional, dejando el origen en la esquina inferior izquierda.
Si luego deseas modificar tu imagen cambiando todo, solo puedes agregar el argumento
opcional apropiado.
Cada comando picture le dice a LATEX dónde colocar algo proporcionando su posición.
Una position es un par como (2.4,-5) dando las coordenadas x e y. Una coordenada no
es una longitud, es un número real (puede tener un punto decimal o un signo menos). Eso
especifica una longitud en múltiplos de la unidad de longitud \unitlength, por lo que si
\unitlength se ha establecido en 1cm, entonces la coordenada 2.54 especifica una longitud
de 2.54 centı́metros.
Capı́tulo 8: Entornos 81
8.19.1 \put
Sinopsis:
\put(xcoord,ycoord){content}
Coloca content en la coordenada (xcoord,ycoord). Ve la discusión de coordenadas y
\unitlength en Sección 8.19 [picture], página 79. El contenido se procesa en modo LR
(véase Capı́tulo 17 [Modos], página 179) por lo que no puede contener saltos de lı́nea.
Esto incluye el texto en la picture.
\put(4.5,2.5){Aplica el \textit{unpoke} move}
El punto de referencia, la ubicación (4.5,2.5), es la parte inferior izquierda del texto, en
la parte inferior izquierda de ‘A’.
8.19.2 \multiput
Sinopsis:
\multiput(x,y)(delta_x,delta_y){num-copies}{obj}
Copia obj un total de num-copies veces, con un incremento de delta x,delta y. El obj
aparece primero en la posición (x, y), entonces en (x + δx , y + δy ), y ası́ sucesivamente.
Esto dibuja una cuadrı́cula simple con cada quinta lı́nea en negrita (ve también Sec-
ción 8.19.4 [\graphpaper], página 83).
\begin{picture}(10,10)
\linethickness{0.05mm}
\multiput(0,0)(1,0){10}{\line(0,1){10}}
\multiput(0,0)(0,1){10}{\line(1,0){10}}
\linethickness{0.5mm}
\multiput(0,0)(5,0){3}{\line(0,1){10}}
\multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}
8.19.3 \qbezier
Sinopsis:
\qbezier(x1,y1)(x2,y2)(x3,y3)
\qbezier[num](x1,y1)(x2,y2)(x3,y3)
Dibuja una curva de Bézier cuadrática cuyos puntos de control estén dados por tres
argumentos requeridos (x1,y1), (x2,y2) y (x3,y3). Eso es, la curva va de (x1,y1) a (x3,y3),
es cuadrática y es tal que la recta tangente en (x1,y1) pasa por (x2,y2), al igual que la recta
tangente en (x3,y3).
Esto dibuja una curva desde la coordenada (1,1) a (1,0).
\qbezier(1,1)(1.25,0.75)(1,0)
La lı́nea tangente de la curva en (1,1) contiene (1.25,0.75), al igual que la recta tangente de
la curva en (1,0).
El argumento opcional num da el número de cálculos de puntos intermedios. El valor
predeterminado es dibujar una curva suave cuyo número máximo de puntos es \qbeziermax
(cambia este valor con \renewcommand).
Capı́tulo 8: Entornos 83
Esto dibuja un rectángulo con una parte superior ondulada, usando \qbezier para esa
curva
\begin{picture}(8,4)
\put(0,0){\vector(1,0){8}} % eje x
\put(0,0){\vector(0,1){4}} % eje y
\put(2,0){\line(0,1){3}} % lado izquierdo
\put(4,0){\line(0,1){3.5}} % lado derecho
\qbezier(2,3)(2.5,2.9)(3,3.25)
\qbezier(3,3.25)(3.5,3.6)(4,3.5)
\thicklines % debajo de aquı́, las lı́neas son el
% doble de gruesas
\put(2,3){\line(4,1){2}}
\put(4.5,2.5){\framebox{Regla trapezoidal}}
\end{picture}
8.19.4 \graphpaper
Sinopsis:
\graphpaper(x_init,y_init)(x_dimen,y_dimen)
\graphpaper[spacing](x_init,y_init)(x_dimen,y_dimen)
Dibuja una cuadrı́cula de coordenadas. Requiere el paquete graphpap. El origen de la
cuadrı́cula es (x_init,y_init). Las lı́neas de la cuadrı́cula vienen cada spacing unidades
(el valor predeterminado es 10). La cuadrı́cula extiende x dimen unidades hacia la derecha y
y dimen unidades hacia arriba. Todos los argumentos deben ser números enteros positivos.
Esto crea una cuadrı́cula con siete lı́neas verticales y once lı́neas horizontales.
\usepackage{graphpap} % en el preámbulo
...
\begin{picture}(6,20) % en el cuerpo del documento
\graphpaper[2](0,0)(12,20)
\end{picture}
Las lı́neas están numeradas cada diez unidades.
8.19.5 \line
Sinopsis:
\line(x_run,y_rise){travel}
Dibuja una lı́nea. Tiene una pendiente tal que sube verticalmente y rise para cada x run
horizontal. El travel es el cambio horizontal total — no es la longitud del vector, es el cambio
en x. En el caso especial de las lı́neas verticales, donde (x run,y rise)=(0,1), travel da el
cambio en y.
Esto dibuja una lı́nea que comienza en las coordenadas (1,3).
\put(1,3){\line(2,5){4}}
Por cada más de 2, esta lı́nea aumentará 5. Porque travel especifica que esto pasa de 4, debe
subir a 10. Por lo tanto, su punto final es (1, 3) + (4, 10) = (5, 13). En particular, ten en
cuenta que travel = 4 no es la longitud de la lı́nea, es el cambio en x.
Capı́tulo 8: Entornos 84
Los argumentos x run y y rise son números enteros que se pueden positivo, negativo
o cero. (Si ambos son 0 entonces LATEX trata el segundo como 1). Con \put(x_init,y_
init){\line(x_run,y_rise){travel}}, si x run es negativo, el punto final de la lı́nea
tiene una primer coordenada menor que x init. Si y rise es negativo entonces el punto final
de la lı́nea tiene una segunda coordenada que es menor que y init.
Si travel es negativo, obtendrás Error de LaTeX: \line incorrecta o el argumento
\vector.
LATEX estándar solo puede dibujar lı́neas con un rango limitado de pendientes porque estas
rectas se forman juntando segmentos de recta de letras prefabricadas. Los dos números x run
y y rise deben tener valores enteros desde −6 hasta 6. Asimismo, deben ser relativamente
primos, por lo que (x run,y rise) puede ser (2,1) pero no (4,2) (si eliges el último, en lugar
de lı́neas obtiene secuencias de puntas de flecha; la solución es cambiar a la primera). Para
obtener lineas de pendiente arbitraria y muchas otras formas en un sistema como picture,
ve el paquete pict2e (https://ctan.org/pkg/pict2e). Otra solución es usar un sistema
de gráficos completo como TikZ, PSTricks, MetaPost o Asymptote.
8.19.6 \linethickness
Sinopsis:
\linethickness{dim}
Declara el grosor de las lı́neas horizontales y verticales subsiguientes en una imagen debe
ser dim, que debe tener una longitud positiva (véase Capı́tulo 14 [Longitudes], página 138).
Se diferencia de \thinlines y \thicklines en el sentido de que no afecta el grosor de las
lı́neas inclinadas, cı́rculos u óvalos (véase Sección 8.19.10 [\oval], página 85).
8.19.7 \thinlines
Declaración para establecer el grosor de lı́neas, cı́rculos y óvalos posteriores en un entorno
picture para ser 0.4 pt. Este es el valor predeterminado de grosor, por lo que este comando
es innecesario a menos que el grosor haya cambiado con Sección 8.19.6 [\linethickness],
página 84, o Sección 8.19.8 [\thicklines], página 84.
8.19.8 \thicklines
Declaración para establecer el grosor de lı́neas, cı́rculos y óvalos posteriores en un entorno
picture para ser 0.8 pt. Ve también Sección 8.19.6 [\linethickness], página 84, y Sección 8.19.7
[\thinlines], página 84. Este comando se ilustra en el ejemplo de regla trapezoidal de
Sección 8.19.3 [\qbezier], página 82.
8.19.9 \circle
Sinopsis:
\circle{diameter}
\circle*{diameter}
Produce un cı́rculo con un diámetro lo más cercano posible al especificado. La forma
* produce un cı́rculo relleno.
Esto dibuja un cı́rculo de radio 6, centrado en (5,7).
\put(5,7){\circle{6}}
Capı́tulo 8: Entornos 85
Los radios disponibles para \circle son, en puntos, los números pares del 2 al 20, ambos
inclusive. Para \circle* son todos los números enteros del 1 al 15.
8.19.10 \oval
Sinopsis:
\oval(width,height)
\oval(width,height)[portion]
Produce un rectángulo con esquinas redondeadas, en lo sucesivo denominado oval. El
argumento opcional portion te permite producir sólo la mitad o un cuarto del óvalo. Para
medio óvalo toma portion para que sea uno de estos.
t mitad superior (top)
b mitad inferior (bottom)
r mitad derecha (right)
l mitad izquierda (left)
Produce solo un cuarto del óvalo configurando en portion en tr, br, bl o tl.
Esto dibuja la mitad superior de un óvalo de 3 de ancho y 7 de alto.
\put(5,7){\oval(3,7)[t]}
El (5,7) es el centro de todo el óvalo, no solo el centro de la mitad superior.
Estas formas no son elipses. Son rectángulos cuyas esquinas están hechas con cuartos
de cı́rculo. Estos cı́rculos tienen un radio máximo de 20 pt (véase Sección 8.19.9 [\circle],
página 84, para los tama~ nos). Por lo tanto, los óvalos grandes son solo Marcos con una
peque~ na cantidad de esquinas redondeadas.
8.19.11 \shortstack
Sinopsis:
\shortstack[position]{line 1 \\ ... }
Produce una pila vertical de objetos.
Esto etiqueta el eje y escribiendo la palabra ‘y’ arriba de la palabra ‘eje’.
\setlength{\unitlength}{1cm}
\begin{picture}(5,2.5)(-0.75,0)
\put(0,0){\vector(1,0){4}} % eje x
\put(0,0){\vector(0,1){2}} % y
\put(-0.2,2){\makebox(0,0)[r]{\shortstack[r]{$y$\\ ejes}}}
\end{picture}
Para una pila peque~ na, el punto de referencia es la parte inferior izquierda de la pila. En el
ejemplo anterior, el \makebox (véase Sección 20.1 [\mbox y \makebox], página 200) pone la
pila se alinea a la derecha en un cuadro de ancho cero, por lo que en total la pila corta se
encuentra ligeramente a la izquierda del eje y.
Los puestos válidos son:
r Hace que los objetos queden alineados a la derecha
l Hace que los objetos queden alineados a la izquierda
Capı́tulo 8: Entornos 86
8.19.12 \vector
Sinopsis:
\vector(x_run,y_rise){travel}
Dibuja una lı́nea que termine en una flecha. La pendiente de esa recta es: sube verti-
calmente y rise por cada x run horizontal. Los travel es el cambio horizontal total — no
es la longitud del vector, es el cambio en x. En el caso especial de vectores verticales, si
(x run,y rise)=(0,1), entonces travel da el cambio en y.
Para ver un ejemplo, Sección 8.19 [picture], página 79.
Para obtener más detalles sobre x run y y rise, consulta Sección 8.19.5 [\line], página 83.
Como allı́, los valores de x run y y rise están limitados. Para \vector debes elegir números
enteros entre −4 y 4, inclusive. Además, los dos que elijas deben ser relativamente primos.
De este modo, \vector(2,1){4} es aceptable pero \vector(4,2){4} no es (si usas este
último, obtendrás una secuencia de puntas de flecha).
8.19.15 \frame
Sinopsis:
\frame{contenido}
Pone un marco rectangular alrededor de content. El punto de referencia es la esquina
inferior izquierda del marco. En contraste con \framebox (véase Sección 8.19.14 [\framebox
(picture)], página 87), este comando no pone espacio adicional entre el marco y el objeto. es
frágil (véase Sección 12.11 [\protect], página 130).
8.19.16 \dashbox
Sinopsis:
\dashbox{dash-len}(rect-width,rect-height){text}
\dashbox{dash-len}(rect-width,rect-height)[position]{text}
Crea un rectángulo punteado alrededor de text. Este comando encaja con el entorno
picture, aunque lo puedes usar fuera de allı́, porque las longitudes son números que
especifican la distancia en términos de \unitlength (véase Sección 8.19 [picture], página 79).
Capı́tulo 8: Entornos 88
Los argumentos requeridos son: los guiones son dash-len unidades de largo, con el mismo
espacio de longitud, y el rectángulo tiene un ancho total de rect-width unidades y una altura
de rect-height unidades.
El argumento opcional position especifica la posición de text; Sección 8.19.13 [\makebox
(picture)], página 86, para los valores que puede tomar.
Esto muestra que puedes usar un valor no entero para dash-len.
\put(0,0){\dashbox{0.1}(5,0.5){Mi aerodeslizador está lleno de
anguilas.}}
Cada guión tendrá una longitud de 0.1\unitlength, el ancho del cuadro es 5\unitlength
y su altura es 0.5\unitlength.
Como en ese ejemplo, un cuadro discontinuo se ve mejor cuando rect-width y rect-height
son múltiplos de dash-len.
8.21 tabbing
Sinopsis:
\begin{tabbing}
row1col1 \= row1col2 ... \\
row2col1 \> row2col2 ... \\
...
\end{tabbing}
Alinea el texto en columnas, configurando tabulaciones y tabulando en ellas tanto
como fue posible en una máquina de escribir. Esto se usa con menos frecuencia que los
Capı́tulo 8: Entornos 89
entornos tabular (véase Sección 8.23 [tabular], página 92) o array (véase Sección 8.2 [array],
página 58) porque en esos, el ancho de cada columna no necesita ser constante y no es
necesario conocerlo de antemano.
Este ejemplo tiene una primera lı́nea donde las tabulaciones se establecen en anchos
explı́citos, terminados por un comando \kill (que se describe a continuación):
\begin{tabbing}
\hspace{1.2in}\=\hspace{1in}\=\kill
Ship \>Armas \>A~
no \\
\textit{Sophie} \>14 \>1800 \\
\textit{Polychrest} \>24 \>1803 \\
\textit{Lively} \>38 \>1804 \\
\textit{Surprise} \>28 \>1805 \\
\end{tabbing}
Tanto el entorno tabbing como el entorno más utilizado tabular ponen el texto en
columnas. La más importante distinción es que en tabular el ancho de las columnas LATEX
lo determina automáticamente, mientras que en tabbing el usuario establece las paradas de
tabulación. Otra distinción es que ese tabular genera un cuadro, pero tabbing se puede
a dividir en páginas. Finalmente, mientras que tabular se puede usar en cualquier modo,
tabbing se puede usar solo en modo párrafo y siempre comienza un nuevo párrafo, sin
sangrı́a.
Además, como se muestra en el ejemplo anterior, no es necesario para usar la forma
destacada del comando \hspace al principio de una fila tabulada. El margen derecho del
entorno tabbing es el final de la lı́nea, de modo que el ancho del entorno sea \linewidth.
El entorno tabbing contiene una secuencia de filas tabuladas. La primera fila tabulada
comienza inmediatamente después \begin{tabbing} y cada fila termina con \\ o \kill.
La última fila puede omitir el \\ y terminar con solo \end{tabbing}.
En cualquier punto, el entorno tabbing tiene un patrón de tabulación actual, una
secuencia de tabulaciones n > 0, numeradas 0, 1, etc. Estos crean n columnas correspondientes.
Tabulaciones 0 siempre es el margen izquierdo, definido por el entorno envolvente. Tabulación
número i se establece si se le asigna una posición horizontal en la página. Número de
tabulación i solo se puede establecer si todas las paradas 0, . . . , i − 1 ya se han configurado;
normalmente las paradas posteriores están a la derecha de las anteriores.
De forma predeterminada, cualquier texto compuesto en un entorno tabbing está com-
puesto alineado de forma irregular a la derecha y a la izquierda en la tabulación actual. La
composición tipográfica está hecha en modo LR (véase Capı́tulo 17 [Modos], página 179).
Los siguientes comandos se pueden usar dentro de un entorno tabbing. Todos son frágiles
(véase Sección 12.11 [\protect], página 130).
\\ (tabulación)
Termina una lı́nea tabulada y la compone.
\= (tabulación)
Establece una tabulación en la posición actual.
\> (tabulación)
Avanza a la siguiente tabulación.
Capı́tulo 8: Entornos 90
\< Pone el siguiente texto a la izquierda del margen local (sin cambiar el margen).
Solo se puede utilizar al principio de la lı́nea.
\+ Mueve el margen izquierdo del siguiente y todos los siguientes comandos una
tabulación a la derecha, comenzando la lı́nea tabulada si es necesario.
\- Mueve el margen izquierdo del siguiente y todos los siguientes comandos una
tabulación a la izquierda, comenzando la lı́nea tabulada si es necesario.
\' (tabulación)
Mueve todo lo que hayas escrito hasta ahora en la columna actual, es decir, todo,
desde el comando \> más reciente, \<, \', \\, o \kill, a la columna anterior y
alineado a la derecha, al ras contra la tabulación de la columna actual.
\` (tabulación)
Te permite poner el texto al ras contra cualquier tabulación, incluidas las
tabulaciones 0. Sin embargo, no puedes mover el texto a la derecha de la última
columna porque no hay una tabulación allı́. El comando \` mueve todo el texto
que le sigue, hasta el comando \\ o \end{tabbing} que finaliza la lı́nea, al
margen derecho del entorno tabbing. No debe haber ningún comando \> o \'
entre \` y \\ o \end{tabbing} que finaliza la lı́nea.
\a (tabulación)
En un entorno tabbing, los comandos \=, \' y \` no produce acentos como
de costumbre (véase Sección 23.5 [Acentos], página 229). En cambio, usa los
comandos \a=, \a' y \a`.
\kill Establece tabulaciones sin producir texto. Funciona igual que \\ excepto que
desecha la lı́nea actual en lugar de producir una salida para ella. Cualquier
comando \=, \+ o \- en esa lı́nea permanece en efecto.
\poptabs Restaura las posiciones de tabulación guardadas por el último \pushtabs.
\pushtabs
Guarda todas las posiciones de tabulación actuales. Útil para cambiar temporal-
mente posiciones de tabulación en medio de un entorno tabbing.
\tabbingsep
Distancia del texto movido por \' a la izquierda de la tabulación actual.
Este ejemplo compone una función de Pascal:
\begin{tabbing}
function \= fact(n : integer) : integer;\\
\> begin \= \+ \\
\> if \= n > 1 then \+ \\
fact := n * fact(n-1) \- \\
else \+ \\
fact := 1; \-\- \\
end;\\
\end{tabbing}
La salida se ve ası́.
function fact(n : integer) : integer;
Capı́tulo 8: Entornos 91
begin
if n > 1 then
fact := n * fact(n-1);
else
fact := 1;
end;
Este ejemplo es solo para ilustrar el entorno. En realidad escribir código de ordenador
en una máquina de escribir como esta, un entorno textual (véase Sección 8.27 [verbatim],
página 103) normalmente serı́a lo mejor. Para un código bien impreso, hay unos cuantos
paquetes, incluido algorithm2e, fancyvrb, listings y minted.
8.22 table
Sinopsis:
\begin{table}[ubicación]
cuerpo de la tabla
\caption[loftitle]{title} % opcional
\label{label} % también opcional
\end{table}
Una clase de flotantes (véase Sección 5.7 [Flotantes], página 36). No se pueden dividir
en páginas por lo que no se escriben en secuencia con el texto normal, sino que en su lugar
flotan a un lugar conveniente, como la parte superior de una página siguiente.
Este entorno table de ejemplo contiene un tabular
\begin{table}
\centering\small
\begin{tabular}{ll}
\multicolumn{1}{c}{\textit{Autor}}
&\multicolumn{1}{c}{\textit{Pieza}} \\ \hline
Bach &Cello Suite Número 1 \\
Beethoven &Cello Sonata Número 3 \\
Brahms &Cello Sonata Número 1
\end{tabular}
\caption{Las mejores piezas de violonchelo}
\label{tab:cello}
\end{table}
pero puedes poner muchos tipos diferentes de contenido en una tabla: el cuerpo de la tabla
puede contener texto, comandos de LATEX, gráficos, etc. Es tipografiado en un parbox de
ancho \textwidth.
Para los posibles valores de placement y su efecto en el algoritmo de colocación de
flotantes, Sección 5.7 [Flotantes], página 36.
La etiqueta es opcional; se usa para referencias cruzadas (véase Capı́tulo 7 [Referencias
cruzadas], página 53). El comando \caption también es opcional. Especifica texto del tı́tulo
title para la tabla (véase Sección 5.7.1 [\caption], página 39). De manera predeterminada es
numerado. Si su lottitle opcional está presente, entonces ese texto se utiliza en la lista de
tablas en lugar de title (véase Sección 25.1 [Tabla de contenido etc.], página 239).
Capı́tulo 8: Entornos 92
En este ejemplo, la tabla y el tı́tulo flotarán en la parte inferior de una página, a menos
que se empuje a una página flotante al final.
\begin{table}[b]
\centering
\begin{tabular}{r|p{2in}} \hline
Uno &El número loneliest \\
Dos &Puede estar tan triste como uno.
Es el número más solitario desde el número uno.
\end{tabular}
\caption{Virtud cardinal}
\label{tab:CardinalVirtues}
\end{table}
8.23 tabular
Sinopsis:
\begin{tabular}[pos]{cols}
entrada de columna 1 &entrada de columna 2
...
&entrada de columna n \\
...
\end{tabular}
o
\begin{tabular*}{width}[pos]{cols}
entrada de columna 1 &entrada de columna 2
...
&entrada de columna n \\
...
\end{tabular*}
Produce una tabla, una caja que consta de una secuencia de filas horizontales. Cada
fila consta de elementos alineados verticalmente en columnas. Este ilustra muchas de las
caracterı́sticas.
\begin{tabular}{l|l}
\textit{Nombre del jugador} &\textit{Carrera de jonrones} \\
\hline
Hank Aarón &755 \\
nena Ruth &714
\end{tabular}
La salida tendrá dos columnas alineadas a la izquierda con una barra vertical entre ellos.
Esto se especifica en el argumento {l|l} de tabular. Coloca las entradas en diferentes
columnas separándolas con un ampersand, &. El final de cada fila está marcado con una
doble barra invertida, \\. Pone una regla horizontal debajo de una fila, después de una doble
barra invertida, con \hline. Después de la última fila, las \\ son opcionales, a menos que
un \hline siga el comando para poner una regla debajo de la tabla.
Los argumentos requeridos y opcionales para tabular consisten en:
Capı́tulo 8: Entornos 93
$3$ &$14$ \\
$9$ &$80665$
\end{tabular}
Un comando \extracolsep{wd} en una expresión @ provoca un
espacio adicional de ancho wd para que aparezca a la izquierda de
todas las subsiguientes columnas, hasta que sea revocado por otro
\extracolsep. A diferencia del espacio entre columnas ordinario,
este espacio adicional no se suprime por una @-expresión. Un co-
mando \extracolsep solo se puede usar en una @-expresión en el
argumento cols. A continuación, LATEX inserta la cantidad correcta
de espacios entre columnas para que toda la tabla tenga 4 pulgadas
de ancho.
\begin{tabular*}{4in}{l@{\extracolsep{\fill}}l}
Siete veces abajo, ocho veces arriba \ldots
&¡ası́ es la vida!
\end{tabular*}
Para insertar comandos que se ejecutan automáticamente antes
de una determinada columna, carga el paquete array y usa el
especificador >{...}.
*{num}{cols}
Equivalente a num copias de cols, donde num es un entero positivo
y cols es una lista de especificadores. Por lo tanto, el especificador
\begin{tabular}{|*{3}{l|r}|} es equivalente a el especificador
\begin{tabular}{|l|rl|rl|r|}. Ten en cuenta que cols puede
contener otra *-expresión.
\arrayrulewidth
Una longitud que es el grosor de la regla creada por |, \hline y \vline en
tabular y array entornos. El valor predeterminado es ‘.4pt’. Cámbialo como
en \setlength{\arrayrulewidth}{0.8pt}.
\arraystretch
Un factor por el cual el espacio entre filas en los entorno tabular y array
se multiplica. El valor predeterminado es ‘1’, para sin escala. Cámbialo a
\renewcommand{\arraystretch}{1.2}.
\doublerulesep
Una longitud que es la distancia entre las reglas verticales producidas por el
especificador ||. El valor predeterminado es ‘2pt’.
\tabcolsep
Una longitud que es la mitad del espacio entre columnas. El valor predeterminado
es ‘6pt’. Cámbialo con \setlength.
Los siguientes comandos se pueden usar dentro del cuerpo de un entorno tabular, los
dos primeros dentro de una entrada y los dos segundos entre lı́neas:
8.23.1 \multicolumn
Sinopsis:
\multicolumn{numcols}{cols}{text}
Crea una entrada array o tabular que abarque varias columnas. El primer argumento
numcols da el número de columnas a abarcar. El segundo argumento cols especifica el
formato de la entrada, con c para centrado, l para alineado a la izquierda o r para volcarlo
a la derecha. El tercer argumento text da el contenido de esa entrada.
En este ejemplo, en la primera fila, la segunda y la tercera columna son abarcadas por el
encabezado único ‘Name’.
\begin{tabular}{lccl}
\textit{ID} &\multicolumn{2}{c}{\textit{Name}} &\textit{Age} \\
\hline
978-0-393-03701-2 &O'Brian &Patrick &55 \\
...
\end{tabular}
Lo que cuenta como una columna es: el especificador de formato de columna para el
entorno array o tabular se divide en partes, donde cada parte (excepto la primera) comienza
con l, c, r, o p. Ası́ que desde \begin{tabular}{|r|ccp{1.5in}|} las partes son |r|, c,
c, y p{1.5in}|.
El argumento cols redefine el área array o tabular intercolumna del entorno predeter-
minado junto a esta entrada multicolumna. Para afectar esa área, este argumento puede
contener barras verticales | que indica la ubicación de las reglas verticales y expresiones
@{...}. Por lo tanto, si cols es ‘|c|’ entonces esta entrada multicolumna estará centrada y
una regla vertical vendrá en el área intercolumna anterior y posterior. Esta tabla detalla el
comportamiento exacto.
\begin{tabular}{|cc|c|c|}
Capı́tulo 8: Entornos 96
8.23.2 \vline
Dibuja una lı́nea vertical en un entorno tabular o array extendiendo la altura y la profun-
didad completas de la entrada de una fila. Posiblemente también se use en una @-expresión,
aunque su sinónimo barra vertical | es más común. Este comando rara vez se usa en el cuerpo
de una tabla; normalmente las lı́neas verticales de una tabla se especifican en el argumento
cols de tabular y se anula según sea necesario con \multicolumn (véase Sección 8.23
[tabular], página 92).
El siguiente ejemplo ilustra algunas dificultades. En el segundo de la primera fila la
entrada \hfill mueve \vline al borde izquierdo de la celda. Pero eso es diferente a ponerlo
Capı́tulo 8: Entornos 97
a medio camino entre las dos columnas, por lo que entre la primera y la segunda columna
hay dos reglas verticales, con la del especificador {c|cc} viniendo antes de uno producido
por \vline\hfill. En cambio, la primera fila tercera entrada muestra la forma habitual de
poner una barra vertical entre dos columnas. En la segunda fila, ghi es la entrada más ancha
en su columna por lo que en \vline\hfill el \hfill no tiene efecto y la lı́nea vertical en
esa entrada aparece inmediatamente al lado de g, sin espacios en blanco.
\begin{tabular}{c|cc}
x &\vline\hfill y &\multicolumn{1}{|r}{z} \\ % fila 1
abc &def &\vline\hfill ghi % fila 2
\end{tabular}
8.23.3 \cline
Sinopsis:
\cline{i-j}
En un entorno array o tabular, dibuja una regla horizontal comenzando en column i y
terminando en column j. Los guiones, -, deben aparecer en el argumento obligatorio. Para
abarcar una sola columna usa el número dos veces, como con \cline{2-2}.
Este ejemplo pone dos lı́neas horizontales entre la primera y la segunda filas, una lı́nea
en la primera columna solamente, y la otra que abarca la tercera y cuarta columnas. Las
dos lı́neas están una al lado de la otra, a la misma altura.
\begin{tabular}{llrr}
a &b &c &d \\ \cline{1-1} \cline{3-4}
e &f &g &h
\end{tabular}
8.23.4 \hline
Dibuja una lı́nea horizontal del ancho del tabular adjunto o entorno array. Se utiliza
comúnmente para dibujar una lı́nea arriba, abajo y entre las filas de una tabla.
En este ejemplo, la parte superior de la tabla tiene dos reglas horizontales, una arriba de
la otra, que abarca ambas columnas. La parte inferior de la tabla tiene una sola regla que
abarca ambas columnas. Debido al \hline, la lı́nea tabular de la segunda fila que termina
con doble barra invertida \\ es obligatoria.
\begin{tabular}{ll} \hline\hline
Béisbol y Medias Rojas \\
Baloncesto y Celtics \\ \hline
\end{tabular}
8.24 thebibliography
Sinopsis:
\begin{thebibliography}{widest-label}
\bibitem[label]{cite_key}
...
\end{thebibliography}
Capı́tulo 8: Entornos 98
Elabora una bibliografı́a o una lista de referencias. Hay dos formas de producir listas
bibliográficas. Este entorno es adecuado cuando solo tienes unas pocas referencias y puedes
mantener la lista a mano. Véase Sección 8.24.4 [Usar BibTeX], página 100, para un enfoque
más sofisticado.
Esto muestra el entorno con dos entradas.
Este trabajo se basa en \cite{latexdps}.
Juntos son \cite{latexdps, texbook}.
...
\begin{thebibliography}{9}
\bibitem{latexdps}
Leslie Lamport.
\textit{\LaTeX{}: un sistema de preparación de documentos}.
Addison-Wesley, Reading, Massachusetts, 1993.
\bibitem{texbook}
Donald Ervin Knuth.
\textit{El libro de \TeX}.
Addison-Wesley, Reading, Massachusetts, 1983.
\end{thebibliography}
Esto estiliza la primera referencia como ‘[1] Leslie ...’, y ası́ ... basado en
\cite{latexdps} produce la coincidencia ‘... basado en [1]’. El segundo \cite produce
‘[1, 2]’. Debes compilar el documento dos veces para resolver estas referencias.
El argumento obligatorio widest-label es texto que, cuando se compone, es tan ancho
como la etiqueta de artı́culo más ancha producida por los comandos \bibitem. La tradición
es usar 9 para bibliografı́as con menos de 10 referencias, 99 para las de menos de 100, etc.
La lista bibliográfica está encabezada por un tı́tulo como ‘Bibliography’. Para cambiarlo
hay dos casos. En las clases book y report, donde la sección de nivel superior es \chapter
y el tı́tulo predeterminado es ‘Bibliography’, ese tı́tulo está en la macro \bibname. Para
article, donde el nivel superior de la clase de seccionado es \section y la predeterminada es
‘References’, el tı́tulo está en la macro \refname. Cámbialo redefiniendo el comando, como
con \renewcommand{\refname}{Referencias citadas}, después \begin{document}.
Los paquetes de soporte de idiomas como babel automáticamente redefinen \refname o
\bibname para ajustarse al idioma seleccionado.
Véase Sección 8.16 [list], página 71, para los parámetros de control de dise~
no de lista.
8.24.1 \bibitem
Sinopsis:
\bibitem{cite_key}
o
\bibitem[label]{cite_key}
Genera una entrada etiquetada de manera predeterminada por un número generado
usando el contador enumi. La clave de cita cite key puede ser cualquier cadena de letras,
números y signos de puntuación (pero no comas).
Véase Sección 8.24 [thebibliography], página 97, por ejemplo.
Capı́tulo 8: Entornos 99
8.24.2 \cite
Sinopsis:
\cite{keys}
o
\cite[subcite]{keys}
Genera como salida una cita a las referencias asociadas a keys. La keys obligatoria es
una clave de cita, o una lista de claves de citas separadas por comas (véase Sección 8.24.1
[\bibitem], página 98).
Este
La fuente definitiva es \cite{texbook}.
...
Capı́tulo 8: Entornos 100
\begin{thebibliography}
\bibitem{texbook}
Donald Ervin Knuth.
\textit{El libro de \TeX}.
Addison-Wesley, Reading, Massachusetts, 1983.
\end{thebibliography}
produce una salida como ‘... la fuente es [1]’. Puedes cambiar la aparición de la cita
y de la referencia mediante el uso de estilos de bibliografı́a si genera automáticamente el
entorno thebibliography. Para más información Sección 8.24.4 [Usar BibTeX], página 100.
El argumento opcional subcite se adjunta a la cita. Por ejemplo, Ve 14.3 en
\cite[p.~314]{texbook} podrı́a producir ‘Ve 14.3 en [1, p. 314]’.
Además de lo que aparece en la salida, \cite escribe información al archivo auxi-
liar jobname.aux (véase Sección 28.3 [Nombre del trabajo], página 270). Por ejemplo,
\cite{latexdps} escribe ‘\citation{latexdps}’ a ese archivo. Esta información la utiliza
BibTEX para incluir en su lista de referencias solo aquellos trabajos que realmente se han
citado; Sección 8.24.3 [\nocite], página 100, también.
Si keys no está en la información de tu bibliografı́a, obtendrás ‘Advertencia de LaTeX:
Habı́a referencias no definidas’, y en la salida la cita se muestra como un signo de
interrogación en negrita entre corchetes. Hay dos posibles causas. Si has escrito algo mal, como
en \cite{texbok} entonces necesitas corregir la ortografı́a. Por otro lado, si acabas de agregar
o modificar información bibliográfica y ası́ cambias el archivo .aux (véase Sección 8.24.1
[\bibitem], página 98) entonces la solución puede ser ejecutar LATEX nuevamente.
8.24.3 \nocite
Sinopsis:
\nocite{keys}
No produce salida pero escribe keys en el archivo auxiliar jobname.aux (véase Sección 28.3
[Nombre del trabajo], página 270).
El argumento obligatorio keys es una lista separada por comas de una o más claves de
cita (véase Sección 8.24.1 [\bibitem], página 98). Esta información la utiliza BibTEX para
incluir estos trabajos en tu lista de referencia aunque no los hayas citado explı́citamente
(véase Sección 8.24.2 [\cite], página 99).
alfa Las etiquetas se forman a partir del nombre del autor y el a~ no de publicación.
Los elementos bibliográficos están ordenados alfabéticamente.
plain Las etiquetas son números enteros. Ordena los elementos bibliográficos al-
fabéticamente.
unsrt Como plain, pero las entradas están en orden de cita.
abbrv Como plain, pero etiquetas más compactas.
Existen muchos, muchos otros archivos de estilo BibTEX, adaptados a las demandas de
varias publicaciones. Ve el tema CTAN https://ctan.org/topic/bibtex-sty.
El comando \bibliography es lo que realmente produce la bibliografı́a. Su argumen-
to es una lista separada por comas, que se refiere a archivos llamados bibfile1.bib,
bibfile2.bib, . . . Estos contienen tu base de datos en formato BibTEX. Esto muestra un
par tı́pico de entradas en ese formato.
@book{texbook,
title = {El {{\TeX}}book},
author = {D.E. Knuth},
isbn = {0201134489},
series = {Ordenadores \& typesetting},
year = {1983},
publisher = {Addison-Wesley}
}
@book{sexbook,
author = {W.H. Maestros y V.E. Johnson},
title = {Respuesta sexual humana},
year = {1966},
publisher = {Libros Bantam}
}
Solo las entradas bibliográficas a las que se hace referencia a través de \cite y \nocite
aparecerá en la bibliografı́a del documento. Ası́ puedes mantener todas tus fuentes juntas en
un archivo, o una peque~ na cantidad de archivos, y confı́a en BibTEX para incluir en este
documento solo aquellos que usaste.
Con BibTEX, el argumento keys para \nocite también puede ser el carácter único ‘*’.
Esto significa citar implı́citamente todas las entradas de todas las bibliografı́as dadas.
\citation
\cite, \nocite
Por ejemplo, si tu documento no tiene comando \bibliographystyle, BibTEX se queja
de la siguiente manera:
No encontré ningún comando \bibstyle --- mientras leı́a el archivo
document.aux
8.25 theorem
Sinopsis:
\begin{theorem}
cuerpo del teorema
\end{theorem}
Produce ‘Teorema n’ en negrita seguido del cuerpo del teorema en cursiva. La posibilidad
de numeración para n se describe en \newtheorem (véase Sección 12.9 [\newtheorem],
página 128).
\newtheorem{lem}{Lemma} % en el preámbulo
\newtheorem{thm}{Theorem}
...
\begin{lem} % en el cuerpo del documento
texto del lema
\end{lem}
8.26 titlepage
Sinopsis:
\begin{titlepage}
... texto y espaciado ...
\end{titlepage}
Crea una página de tı́tulo, una página sin número de página impreso o encabezado y con
las páginas sucesivas numeradas a partir de la página uno.
En este ejemplo, todo el formato, incluido el espaciado vertical, se deja a el autor.
\begin{titlepage}
\vspace*{\stretch{1}}
\begin{center}
{\huge\bfseries Tesis \\[1ex]
Capı́tulo 8: Entornos 103
tı́tulo} \\[6.5ex]
{\large\bfseries Nombre del autor} \\
\vspace{4ex}
Tesis enviada a \\[5pt]
\textit{Nombre de la universidad} \\[2cm]
en cumplimiento parcial para la concesión del tı́tulo de \\[2cm]
\textsc{\Gran Doctor en Filosofı́a} \\[2ex]
\textsc{\large Matemáticas} \\[12ex]
\vfill
Departamento de Matemáticas \\
Dirección \\
\vfill
\today
\end{center}
\vspace{\stretch{2}}
\end{titlepage}
En su lugar, produce una página de tı́tulo estándar sin un entorno titlepage, usa
\maketitle (véase Sección 18.1 [\maketitle], página 181).
8.27 verbatim
Sinopsis:
\begin{verbatim}
texto-literal
\end{verbatim}
Un entorno de creación de párrafos en el que LATEX produce como salida exactamente lo
que escribes como entrada. Por ejemplo, dentro de texto-literal el carácter backslash \ no
inicia los comandos, imprime una ‘\’, y se toman literalmente los retornos de carro y espacios
en blanco. La salida aparece en una letra de tipo máquina de escribir monoespaciada (\tt).
\begin{verbatim}
Sı́mbolo juramento: %&$#?!.
\end{verbatim}
La única restricción en texto-literal es que no puede incluir la cadena \end{verbatim}.
No puedes usar el entorno textual en el argumento de las macros, por instancia en el
argumento de un \section. Esto no es lo mismo que los comandos son frágiles (véase
Sección 12.11 [\protect], página 130), en lugar de eso, simplemente no puede funcionar,
ya que el entorno verbatim cambia el régimen de catcode antes de tratar su contenido, y
restaurarlo inmediatamente después, sin embargo, con un argumento macro, el contenido del
argumento ya se ha convertido en una lista de tókenes a lo largo del régimen catcode vigente
cuando se llamó a la macro. Sin embargo, el paquete cprotect puede ayudar con esto
Un uso común de la entrada textual es escribir código informático. Existen paquetes
que son una mejora del entorno verbatim. Por ejemplo, una mejora es permitir la inclusión
palabra por palabra de archivos, o partes de esos archivos. Dichos paquetes incluyen listings,
y minted.
Un paquete que proporciona muchas más opciones para entornos textuales es fancyvrb.
Otro es verbatimbox.
Capı́tulo 8: Entornos 104
Para obtener una lista de todos los paquetes relevantes, consulta CTAN (véase Sección 2.6
[CTAN], página 6).
8.27.1 \verb
Sinopsis:
\verb char texto-literal char
\verb* char texto-literal char
Compone el texto-literal tal como se ingresa, incluidos los caracteres especiales y espacios,
usando la letra de máquina de escribir (\tt).
Este ejemplo muestra dos diferentes invocaciones de \verb.
¡Esto es \verb! ¡Literalmente! la calabaza más grande de todos los
tiempos. Y esta es la mejor calabaza, \verb+¡literalmente!+
El primer \verb tiene su texto-literal rodeado de signos de exclamación, !. En cambio, el
segundo usa más, +, porque el signo de exclamación es parte del texto-literal.
El delimitador de un solo carácter char rodea texto-literal—debe ser el mismo carácter
antes y después. No hay espacios entre \verb o \verb* y char, o entre char y texto-literal,
o entre texto-literal y la segunda aparición de char (la sinopsis muestra un espacio solo para
distinguir un componente del otro). El delimitador no debe aparecer en texto-literal. El
texto-literal no puede incluir un salto de lı́nea.
La forma * se diferencia solo en que los espacios se imprimen con un carácter espacial.
(Es decir, }).
El resultado de esto incluirá un espacio visible en ambos lados de la palabra ‘con’:
El primer argumento del comando es \verb*!filename con extensión! y
...
Para escribir direcciones de Internet, URL, el paquete url es una mejor opción que el
comando \verb, ya que permite saltos de lı́nea.
Para el código informático hay muchos paquetes con ventajas sobre \verb. Uno es
listings, otro es minted.
No puedes usar \verb en el argumento de una macro, por ejemplo en el argumento
de una \section. No es cuestión de que \verb sea frágil (véase Sección 12.11 [\protect],
página 130), en lugar de eso, simplemente no puede trabajar, ya que el comando \verb
cambia el régimen de catcode antes de leer su argumento, y restaurarlo inmediatamente
después, sin embargo con un argumento de macro el contenido del argumento ya ha sido
convertido a una lista de tókenes a lo largo del régimen catcode vigente cuando se llamó a la
macro. Sin embargo, el paquete cprotect puede ayudar con esto.
8.28 verse
Sinopsis:
\begin{verse}
line1 \\
line2 \\
...
\end{verse}
Capı́tulo 8: Entornos 105
9 Salto de lı́nea
Lo primero que hace LATEX al procesar texto ordinario es traducir tu archivo de entrada a
una secuencia de glifos y espacios. Para producir un documento impreso, esta secuencia se
debe dividir en lı́neas (y estas lı́neas se deben dividir en páginas).
LATEX normalmente hace el salto de lı́nea (y de página) en el texto del cuerpo pero en
algunos entornos fuerza manualmente los saltos de lı́nea.
Un flujo de trabajo común es obtener una versión final del contenido del documento antes
de realizar una pasada final y considerar los saltos de lı́nea (y saltos de página). Esto difiere
del procesamiento de palabras, donde estás formateando texto a medida que lo ingresas.
Aplazar esto hasta el final evita un montón saltos de lı́nea que cambiarán de todos modos.
9.1 \\
Sinopsis, una de:
\\
\\[morespace]
o una de:
\\*
\\*[morespace]
Finaliza la lı́nea actual. El argumento opcional morespace especifica espacio vertical
adicional que se insertará antes de la siguiente lı́nea. Esta es un longitud elástica (véase
Capı́tulo 14 [Longitudes], página 138) y puede ser negativa. El texto antes del salto de lı́nea
se establece en su longitud normal, es decir, no se estira para completar el ancho de la lı́nea.
Este comando es frágil (véase Sección 12.11 [\protect], página 130).
\title{Mi historia: \\[0.25in]
una historia de aflicción}
La forma destacada, \\*, le dice a LATEX que no inicie una nueva página entre las dos lı́neas,
emitiendo un \nobreak.
Los saltos de lı́nea explı́citos en el cuerpo del texto principal son inusuales en LATEX.
En particular, no comiences nuevos párrafos con \\. En lugar de eso, deja una lı́nea en
blanco entre los dos párrafos. Y no pongas una secuencia de \\’s para hacer espacio vertical.
En su lugar, usa \vspace{length} o \leavevmode\vspace{length} o \vspace*{length}
si deseas que no se arroje el espacio en la parte superior de una nueva página (véase
Sección 19.14 [\vspace], página 197).
El comando \\ se usa principalmente fuera del flujo principal de texto como en un entorno
tabular o array o en un entorno de la ecuación.
El comando \\ es un sinónimo de \newline (véase Sección 9.3 [\newline], página 108) en
circunstancias ordinarias (un ejemplo de una excepción es la columna p{...} en un entorno
tabular; véase Sección 8.23 [tabular], página 92).
El comando \\ es una macro y su definición cambia según el contexto para que su definición
en texto normal, un entorno center, un flushleft y tabular son todos diferentes. En texto
normal, cuando fuerza un salto de lı́nea, esencialmente es una abreviatura para \newline. No
finaliza el modo horizontal ni finaliza el párrafo, simplemente inserta un poco de pegamento
Capı́tulo 9: Salto de lı́nea 107
y penalizaciones para que cuando el párrafo termine, se produzca un salto de lı́nea en ese
punto, con la breve lı́nea rellena con espacios en blanco.
Obtienes ‘Error de LaTeX: No hay lı́nea para terminar aquı́’ si usas \\ para
solicitar una nueva lı́nea, en lugar de finalizar la lı́nea actual. Un ejemplo es si tienes
\begin{document}\\ o, más probablemente, algo como esto.
\begin{center}
\begin{minipage}{0.5\textwidth}
\\
En ese espacio vertical pon tu marca.
\end{minipage}
\end{center}
Solucionalo reemplazando la doble barra invertida con algo como \vspace{\baselineskip}.
\obeycr
ccc
ddd
eee
\restorecr
fff
ggg
hhh
iii
produce una salida como esta.
aaa bbb
ccc
ddd
eee
fff ggg
hhh iii
Las sangrı́as son sangrı́as de párrafo.
Capı́tulo 9: Salto de lı́nea 108
9.3 \newline
En texto ordinario, esto termina una lı́nea de una manera que no se justifica a la derecha.
Para que el texto anterior al final de la lı́nea no se estire, es decir, en modo de párrafo
(véase Capı́tulo 17 [Modos], página 179), el comando \newline es equivalente a doble barra
invertida (véase Sección 9.1 [\\], página 106). Este comando es frágil (véase Sección 12.11
[\protect], página 130).
Sin embargo, los dos comandos son diferentes dentro de un entorno tabular o entorno
array. En una columna con un especificador que produce un cuadro de párrafo como
tı́picamente p{...}, \newline inserta un final de lı́nea dentro de la columna; es decir, no
rompe toda la fila tabular. Para dividir toda la fila, usa \\ o su equivalente \tabularnewline.
Esto imprimirá ‘Nombre:’ y ‘Dirección:’ como dos lı́neas en una sola celda de la tabla.
\begin{tabular}{p{1in}@{\hspace{2in}}p{1in}}
Nombre: \newline Dirección: &Date: \\ \hline
\end{tabular}
‘Date:’ se alineará con la lı́nea base con ‘Nombre:’.
9.6.1 sloppypar
Sinopsis:
\begin{sloppypar}
... párrafos ...
\end{sloppypar}
Compone los párrafos con \sloppy en efecto (véase Sección 9.6 [\fussy y \sloppy],
página 109). Usa esto para ajustar localmente el salto de lı́nea, para evitar los errores ‘Caja
demasiado llena’ o ‘Caja incompleta’.
El ejemplo es simple.
\begin{sloppypar} Con su plan para la ma~ nana ası́ resuelto, se sentó
en silencio a su libro después del desayuno, resolviendo permanecer
en el mismo lugar y el mismo empleo hasta que el reloj dio la una; y
por costumbre muy poco incomodado por los comentarios y
exclamaciones de la Sra.\ Allen, cuyo vacı́o de mente e incapacidad
para pensar eran tales, que como ella nunca hablaba mucho, por lo
que nunca podrı́a estar completamente silencioso; y, por lo tanto,
mientras ella estaba sentada en su trabajo, si perdiera su aguja o
le rompı́a el hilo, si oı́a un carruaje en la calle, o vio una mota en
su vestido, debe observarla en voz alta, ya sea nadie tenı́a tiempo
para responderle o no. \end{sloppypar}
Capı́tulo 9: Salto de lı́nea 110
9.7 \hyphenation
Sinopsis:
\hyphenation{word1 ...}
Declara los puntos de separación de palabras permitidos dentro de las palabras de la
lista. Las palabras en esa lista están separadas por espacios. Muestra puntos permitidos
para separación silábica con un guión, -.
Aquı́ hay un ejemplo:
\hyphenation{hat-er il-lit-e-ra-ti tru-th-i-ness}
Utiliza letras minúsculas. TEX solo dividirá si la palabra coincide exactamente, no se
intentan inflexiones. Múltiples \hyphenation los comandos se acumulan.
10 Salto de página
Normalmente, LATEX automáticamente se encarga de dividir la salida en páginas con su
habitual aplomo. Pero si estás escribiendo comandos, o ajustar la versión final de un
documento, es posible que debas entender cómo influir en sus acciones.
El algoritmo de LATEX para dividir un documento en páginas es más complejo que
simplemente esperar hasta que haya suficiente material para llenar una página y producir el
resultado. En cambio, LATEX compone más material que cabrı́a en la página y luego elige
un salto que es óptimo en alguna forma (tiene el badness más peque~ no). Un ejemplo de la
ventaja de este enfoque es que si la página tiene algún espacio vertical que se puede estirar
o encoger, como con tiras de goma entre párrafos, entonces LATEX lo puede usar para evitar
lı́neas viudas (donde comienza una nueva página con la última lı́nea de un párrafo; LATEX
puede exprimir la lı́nea adicional en la primera página) y huérfanas (donde la primera lı́nea
del párrafo está al final de una página; LATEX puede estirar el material de la primera página
para que la lı́nea extra caiga en la segunda página). Otro ejemplo es donde LATEX usa la
reducción vertical disponible para caber en una página que no solo el encabezado de una
nueva sección, pero también las dos primeras lı́neas de esa sección.
Pero LATEX no optimiza el conjunto de saltos de páginas del documento completo. Entonces
puede suceder que el salto de la primera página sea genial pero el segundo sea pésimo; para
romper la página actual LATEX no ve tan adelante como el siguiente salto de página. Ası́ que
de vez en cuando es posible que desees influir en los saltos de página al preparar una versión
final de un documento.
Véase Capı́tulo 5 [Composición], página 30, para obtener más material relevante para el
salto de página.
\clearpage
{\pagestyle{empty}\origdoublepage}%
}
Si deseas que el comando \chapter estándar de LATEX haga esto, entonces agrega la lı́nea
\let\cleardoublepage\clearemptydoublepage. (Por supuesto, esto afecta todos los usos
de \cleardoublepage, no solo uno en \chapter).
El comando \newpage (véase Sección 10.2 [\newpage], página 112) también termina
la página actual, pero sin borrar los flotantes pendientes. Y, si LATEX está en modo
de dos columnas, entonces \newpage finaliza la columna actual mientras \clearpage y
\cleardoublepage finalizan la página actual.
10.2 \newpage
Sinopsis:
\newpage
Finaliza la página actual. Este comando es robusto (véase Sección 12.11 [\protect],
página 130).
Los saltos de página de LATEX están optimizados, por lo que normalmente solo usas este
comando en el cuerpo de un documento para pulir la versión final, o dentro de comandos.
Mientras que los comandos \clearpage y \cleardoublepage también finalizan la página
actual, además borran los flotantes pendientes (véase Sección 10.1 [\clearpage y \cleardou-
blepage], página 111). Y, si LATEX está en modo de dos columnas, entonces \clearpage y
\cleardoublepage terminan la página actual, posiblemente dejando una columna vacı́a,
mientras \newpage solo finaliza la columna actual.
A diferencia de \pagebreak (véase Sección 10.4 [\pagebreak y \nopagebreak], página 113),
el comando \newpage hará que la nueva página comience justo donde se solicitó. Este
Hace cuarenta y siete a~ nos nuestros padres dieron a luz en este
continente,
\newpage
\noindent
una nueva nación, concebida en Libertad, y dedicada a la proposición
de que todos los hombres son creados iguales.
hace que una nueva página comience después de ‘continente’, y la lı́nea cortada no se
justifica a la derecha. Además, \newpage no estira verticalmente la página, como lo hace
\pagebreak.
10.3 \enlargethispage
Sinopsis, una de:
\enlargethispage{size}
\enlargethispage*{size}
Amplı́a el \textheight para la página actual. El argumento requerido size debe tener
una longitud rı́gida (véase Capı́tulo 14 [Longitudes], página 138). Puede ser positivo o
negativo. Este comando es frágil (véase Sección 12.11 [\protect], página 130).
Capı́tulo 10: Salto de página 113
Una estrategia común es esperar hasta tener el texto final de un documento y, a conti-
nuación, pásalo ajustando los saltos de lı́nea y de página. Este comando te permite cierto
margen de maniobra en el tama~ no de la página.
Esto permitirá una lı́nea adicional en la página actual.
\enlargethispage{\baselineskip}
La forma con estrella \enlargesthispage* intenta exprimir el material juntos en la
página tanto como sea posible, para el caso de uso común de obtener una lı́nea más en la
página. Esto se usa a menudo junto con un \pagebreak explı́cito.
11 Notas al pie
Coloca una nota a pie de página en la parte inferior de la página actual, como aquı́.
Noël Coward bromeó diciendo que tener que leer una nota al pie es
como tener que bajar las escaleras para abrir la puerta, mientras está
en medio de hacer amor.\footnote{% No sabrı́a, no leo las notas al
pie.}
Puedes poner varias notas al pie de página en una página. Si el texto de la nota al pie se
vuelve demasiado largo, entonces fluirá a la página siguiente.
También puedes producir notas al pie combinando \footnotemark y los comandos
\footnotetext, que es útil en casos con circunstancias especiales.
Para que las referencias bibliográficas salgan a pie de página es necesario incluir un estilo
bibliográfico con ese comportamiento (véase Sección 8.24.4 [Usar BibTeX], página 100).
11.1 \footnote
Sinopsis, una de:
\footnote{text}
\footnote[number]{text}
Coloca text como nota al pie al final de la página actual.
Hay más de mil notas a pie de página en el libro de Gibbon.
\textit{Decadencia y Caı́da del Imperio Romano}.\footnote{% Después
de leer una versión anterior con notas finales, David Hume se quejó:
``Uno también está plagado de sus Notas, según el presente Método de
imprimir el Libro'' y sugirió que ``sólo para ser impreso en el margen
o en la parte inferior de la página.''}
El argumento opcional number te permite especificar el número de la nota al pie. Si usas
esto, entonces LATEX no incrementa el contador footnote.
De manera predeterminada, LATEX usa números arábigos como marcadores de notas al
pie. Cambia esto con algo como \renewcommand{\thefootnote}{\fnsymbol{footnote}},
que utiliza una secuencia de sı́mbolos (véase Sección 13.1 [\alph \Alph \arabic \roman
\Roman \fnsymbol], página 134). Para que este cambio sea global, ponlo en el preámbulo.
Si realizas el cambio local, entonces es posible que desees restablecer el contador con
\setcounter{footnote}{0}.
LATEX determina el espaciado de las notas al pie con dos parámetros.
\footnoterule
Produce la regla que separa el texto principal de una página del texto de la notas
al pie de la página. Dimensiones predeterminadas en las clases de documentos
estándar (excepto slides, donde no aparece) es: espesor vertical de 0.4pt, y
tama~ no horizontal de 0.4\columnwidth de largo. Cambia la regla con algo como
esto.
\renewcommand{\footnoterule}{% Kerns evita el espacio vertical
\kern -3pt % Este -3 es negativo
\hrule width \textwidth height 1pt % de la suma de este 1
\kern 2pt} % y este 2
Capı́tulo 11: Notas al pie 115
\footnotesep
La altura del puntal colocado al comienzo de la nota al pie. (véase Sección 19.13
[\strut], página 195). De manera predeterminada, esto se establece en el puntal
normal para \footnotesize fuentes (véase Sección 4.3 [Tama~ nos de los tipos
de letra], página 25), por lo tanto no hay espacio adicional entre las notas al pie.
Este es ‘6.65pt’ para ‘10pt’, ‘7.7pt’ para ‘11pt’ y ‘8.4pt’ para ‘12pt’. Cambio
como con \setlength{\footnotesep}{11pt}.
El comando \footnote es frágil (véase Sección 12.11 [\protect], página 130).
El valor predeterminado de LATEX pone muchas restricciones sobre dónde puedes usar
un \footnote; por ejemplo, no lo puedes usar en un argumento para un comando de
seccionado como \chapter (solo se puede usar en modo de párrafo; véase Capı́tulo 17
[Modos], página 179). Hay algunas soluciones; ve las siguientes secciones.
En un entorno minipage, el comando \footnote usa el contador mpfootnote en lugar
del contador footnote, por lo que se numeran de forma independiente. Se muestran en la
parte inferior del entorno, no en la parte inferior de la página. Y de manera predeterminada
se muestran alfabéticamente. Véase Sección 8.18 [minipage], página 77, y Sección 11.5 [Notas
al pie en una tabla], página 117.
11.2 \footnotemark
Sinopsis, una de:
\footnotemark
\footnotemark[number]
Coloca la marca de nota al pie actual en el texto. Para especificar texto asociado para la
nota al pie Sección 11.3 [\footnotetext], página 116. El argumento number opcional hace
que el comando use ese número para determinar la marca de nota al pie. Este comando se
puede utilizar en el modo de párrafo interior (véase Capı́tulo 17 [Modos], página 179).
Si usas \footnotemark sin el argumento opcional, entonces incrementa el contador
footnote, pero si usas el contador opcional number entonces no lo hace. El siguiente ejemplo
produce varios marcadores consecutivos de notas al pie que se refieren a la misma nota al
pie.
El primer teorema\footnote{Debido a Gauss.} y el segundo
teorema\footnotemark[\value{footnote}] y el tercer
teorema.\footnotemark[\value{footnote}]
Si hay notas al pie intermedias, debes recordar el valor de el número de la marca común.
Este ejemplo da la misma afiliación institucional del primer y tercer autor (\thanks es una
versión de \footnote), dando a mano el número de la nota al pie.
\title{Un tratado sobre el teorema del binomio}
\author{J Moriarty\thanks{Universidad de Leeds}
\y AC Doyle\thanks{Universidad de Durham}
\y S Holmes\footnotemark[1]}
\begin{document}
\maketitle
Utiliza un contador para recordar el número de la nota al pie. La tercera frase va seguida
del mismo marcador de nota al pie que la primera.
Capı́tulo 11: Notas al pie 116
11.3 \footnotetext
Sinopsis, una de:
\footnotetext{text}
\footnotetext[number]{text}
Coloca text en la parte inferior de la página como nota al pie. Se empareja con
\footnotemark (véase Sección 11.2 [\footnotemark], página 115) y puede venir en cualquier
lugar después de ese comando, pero debe aparecer en modo de párrafo externo (véase
Capı́tulo 17 [Modos], página 179). El argumento opcional number cambia el número de la
marca de nota al pie.
Véase Sección 11.2 [\footnotemark], página 115, y Sección 11.5 [Notas al pie en una
tabla], página 117, para usar en ejemplos
...
\begin{table}
\centering
\begin{tabular}{l|l}
\textsc{Fecha} &\textsc{Campa~ na} \\ \hline
1862 & Fuerte Donelson \\
1863 &Vicksburg \\
1865 &Ejército de Virginia del Norte\tablefootnote{%
Pone fin a la guerra.}
\end{tabular}
\caption{Fuerzas capturadas por US Grant}
\end table}
La nota al pie aparece en la parte inferior de la página y está numerada en secuencia con
otras notas al pie.
12 Definiciones
LATEX tiene soporte para crear nuevos comandos de muchos tipos diferentes.
Empleo a \lawyers[Howe]{Dewey}{Cheatem}.
El resultado es ‘Empleo Dewey, Cheatem y Howe’. El argumento opcional, Howe, está asociado
con #1, mientras que Dewey y Cheatem están asociados con #2 y #3. Debido al argumento
opcional, \lawyers{Dewey}{Cheatem} dará la salida ‘Empleo Dewey, Cheatem y Howe’.
Las llaves alrededor de defn no definen un grupo, es decir, no delimitan el alcance del
resultado de expandir defn. Por ejemplo, con \newcommand{\shipname}[1]{\it #1}, en
esta oración,
El \shipname{Monitor} se encontró con el \shipname{Merrimac}.
las palabras ‘se encontró con el’, y el punto, estarı́an incorrectamente en
cursiva. La solución es poner otro par de corchetes dentro de la definición:
\newcommand{\shipname}[1]{{\it #1}}.
12.1.1 Secuencia de control, palabra de control y sı́mbolo de
control
Al leer la entrada TEX convierte el flujo de caracteres leı́dos en una secuencia de tókenes.
Cuando TEX ve una barra invertida \, la hará manejar los siguientes caracteres de una
manera especial para hacer un token de secuencia de control.
Las secuencias de control se dividen en dos categorı́as:
• palabra de control, cuando la secuencia de control se obtiene de una \ seguida de al
menos una letra ASCII (A-Z y a-z), seguida de al menos una no letra.
• sı́mbolo de control, cuando la secuencia de control se obtiene de una \ seguida de un
carácter que no sea una letra.
La secuencia de caracteres que se encuentran después de una \ también se denominan el
nombre de la secuencia de control.
Los espacios en blanco después de una palabra de control se ignoran y no producen espacio
en blanco en la salida (véase Sección 12.1 [\newcommand y \renewcommand], página 119, y
Sección 19.6 [\(SPACE)], página 190).
Ası́ como el comando \relax no hace nada, la siguiente entrada simplemente imprimirá
‘¡Hola!’ usamos espacios visibles ‘␣’ en lugar de espacios en blanco:
¡Hol\relax␣␣␣
␣␣␣a!
Esto se debe a que los espacios en blanco después de \relax, incluida la nueva lı́nea, son
ignorados, y los espacios en blanco al principio de una lı́nea también son ignorados (véase
[Espacios en blanco iniciales], página 191).
12.2 \providecommand
Sinopsis, una de:
\providecommand{\cmd}{defn}
\providecommand{\cmd}[nargs]{defn}
\providecommand{\cmd}[nargs][optargdefault]{defn}
\providecommand*{\cmd}{defn}
\providecommand*{\cmd}[nargs]{defn}
\providecommand*{\cmd}[nargs][optargdefault]{defn}
Capı́tulo 12: Definiciones 122
Define un comando, siempre que no exista ningún comando con este nombre. Si no existe
ningún comando con este nombre, esto tiene el mismo efecto que \newcommand. Si ya existe
un comando con este nombre, entonces esta definición no hace nada. Esto es particularmente
útil en un archivo que se puede cargar más de una vez, como un archivo de estilo. Véase
Sección 12.1 [\newcommand y \renewcommand], página 119, para la descripción de los
argumentos.
Este ejemplo
\providecommand{\myaffiliation}{Colegio de San Miguel}
\providecommand{\myafiliation}{Lyc\'ee Henri IV}
De \myafiliation.
produce ‘De Saint Michael's College.’ A diferencia de \newcommand, el uso repetido de
\providecommand para (intentar) definir \myaffiliation no da error.
12.4 \@ifstar
Sinopsis:
\newcommand{\mycmd}{\@ifstar{\mycmd@star}{\mycmd@nostar}}
\newcommand{\mycmd@nostar}[nostar-num-args]{nostar-body}
\newcommand{\mycmd@star}[star-num-args]{star-body}
Muchos entornos o comandos estándar de LATEX tienen una variante con el mismo nombre
pero terminando con un carácter de estrella *, un asterisco. Algunos ejemplos son los entornos
table y table* y los comandos \section y \section*.
Al definir entornos, seguir este patrón es sencillo porque \newenvironment y
\renewenvironment permiten que el nombre del entorno contenga una estrella. Entonces
solo tienes que escribir \newenvironment{myenv} o \newenvironment{myenv*} y continúa
la definición de la manera habitual. Para los comandos la situación es más compleja ya que
la estrella no es una letra no puede ser parte del nombre del comando. Como en la sinopsis
anterior, habrá un comando llamado por el usuario, dado anteriormente como \mycmd,
que mira hacia delante para ver si le sigue una estrella. Por ejemplo, LATEX realmente no
tiene un comando \section*; en cambio, el comando \section mira hacia adelante. Este
comando no acepta argumentos, sino que se expande a uno de los dos comandos que aceptan
argumentos. En la sinopsis estos dos son \mycmd@nostar y \mycmd@star. Podrı́an tomar el
mismo número de argumentos o un número diferente, o ningún argumento en absoluto.
Como siempre, en un documento LATEX un comando usando una arroba @ en su nombre se
debe encerrar dentro de un bloque \makeatletter ... \makeatother (véase Sección 12.3
[\makeatletter y \makeatother], página 122).
Este ejemplo de \@ifstar define el comando \ciel y una variante \ciel*. Ambos tienen
un argumento obligatorio. Una llamada a \ciel{blue} devolverá "cielo azul no estrellado"
mientras \ciel*{night} devolverá "cielo nocturno estrellado".
\makeatletter
\newcommand*{\ciel@unstarred}[1]{no estrellado #1 cielo}
\newcommand*{\ciel@starred}[1]{cielo estrellado #1}
\newcommand*{\ciel}{\@ifstar{\ciel@starred}{\ciel@unstarred}}
\makeatother
En el siguiente ejemplo, la variante destacada toma un número diferente de argumentos que
el sin estrella. Con esta definición, el Agente 007 ``Mi nombre es \agentsecret*{Bond},
\agentsecret{James}{Bond}.'' es equivalente a ingresar los comandos ``Mi nombre es
\textsc{Bond}, \textit{James} textsc{Bond}.''
\newcommand*{\agentsecret@unstarred}[2]{\textit{#1} \textsc{#2}}
\newcommand*{\agentsecret@starred}[1]{\textsc{#1}}
\newcommand*{\agentsecret}{%
\@ifstar{\agentsecret@starred}{\agentsecret@unstarred}}
Después de un nombre de comando, una estrella se maneja de manera similar a un
argumento opcional. (Esto difiere de los nombres de entornos en los que la estrella es
parte del nombre mismo y como tal podrı́a estar en cualquier posición). Por lo tanto,
Capı́tulo 12: Definiciones 124
12.6 \newlength
Sinopsis:
\newlength{\len}
Asigna un nuevo registro de longitud (véase Capı́tulo 14 [Longitudes], página 138). El
argumento requerido \len tiene que ser una secuencia de control (véase Sección 12.1.1
[Secuencias de control], página 121), y como tal debe comenzar con una barra invertida, \
bajo circunstancias normales. El nuevo registro contiene longitudes elásticas como 72.27pt
o 1in plus.2in minus.1in (una longitud de registro LATEX es lo que TEX llama un skip
de registro). El valor inicial es cero. La secuencia de control \len no debe estar definida ya.
Un ejemplo:
\newlength{\graphichgt}
Si olvidas la barra invertida, obtienes ‘Insertada secuencia de control faltante’. Si
la secuencia de control ya existe, entonces obtienes algo ası́ como ‘Error LaTeX: Comando
\graphichgt ya definido. O nombre \end... ilegal, ve la p.192 del manual’.
12.7 \newsavebox
Sinopsis:
\newsavebox{\cmd}
Define \cmd, la cadena que consta de una barra invertida seguida de cmd, para referirse
a un nuevo contenedor para almacenar material. Estos contenedores contienen material que
ha sido compuesto, para usar varias veces o para medir o manipular (véase Capı́tulo 20
[Cajas], página 200). El nombre del contenedor \cmd es obligatorio, debe comenzar con
una barra invertida, \, y no debe ser un comando definido. Este comando es frágil (véase
Sección 12.11 [\protect], página 130).
Esto asigna un contenedor y luego coloca material tipográfico en él.
\newsavebox{\logobox}
\savebox{\logobox}{LoGo}
Nuestro logo es \usebox{\logobox}.
La salida es ‘Nuestro logotipo es LoGo’.
Si ya hay un contenedor definido, obtienes algo como ‘Error de LaTeX: Comando
\logobox ya definido. O nombre \end... ilegal, ve la p.192 del manual’.
La asignación de una caja es global.
o uno de estos.
\renewenvironment{env}{begdef}{enddef}
\renewenvironment{env}[nargs]{begdef}{enddef}
\renewenvironment{env}[nargs][optargdefault]{begdef}{enddef}
\renewenvironment*{env}{begdef}{enddef}
\renewenvironment*{env}[nargs]{begdef}{enddef}
\renewenvironment*{env}[nargs][optargdefault]{begdef}{enddef}
Definir o redefinir el entorno env, es decir, crear el constructor \begin{env} ... body
... \end{env}.
La forma de asterisco de estos comandos requiere que los argumentos no contienen varios
párrafos de texto. Sin embargo, el cuerpo de estos entornos pueden contener varios párrafos.
env Requerido; el nombre del entorno. Se compone sólo de letras o el carácter forma-*
y, por lo tanto, no comienza con una barra invertida, \. No debe comenzar con
la cadena end. Para \newenvironment, el nombre env no debe ser el nombre de
un entorno ya existente, y también el comando \env debe ser indefinido. Para
\renewenvironment, env debe ser el nombre de un entorno existente.
nargs Opcional; un número entero de 0 a 9 que indica el número de argumentos que
toma el entorno. Cuando usas el entorno, estos argumentos aparecen después
de \begin, como en \begin{env}{arg1} ... {argn}. Omitiendo esto es equi-
valente a establecerlo en 0; el entorno no tendrá argumentos. Al redefinir un
entorno, la nueva versión puede tener un diferente número de argumentos que
la versión anterior.
optargdefault
Opcional; si esto está presente, entonces el primer argumento del entorno definido
es opcional, con el valor predeterminado optargdefault (que puede ser la cadena
vacı́a). Si esto no está en la definición, entonces el entorno no acepta un argumento
opcional.
Es decir, cuando optargdefault está presente en la definición del entorno entonces
puedes comenzar el entorno con corchetes, como en \begin{env}[optval]{...}
... \end{env}. En este caso, dentro de begdefn el parámetro #1 se establece
en el valor de optval. Si llamas a \begin{env} sin corchetes, luego dentro de
begdefn el parámetro #1 es establecido en el valor predeterminado optargdefault.
En cualquier caso, cualquier argumento requerido comienza con #2.
Omitir [myval] en la llamada es diferente a tener corchetes sin contenido, como
en []. Los resultados anteriores en #1 expandiéndose a optargdefault; esto último
resulta en #1 expandiéndose a la cadena vacı́a.
begdef Requerido; el texto se expande en cada aparición de \begin{env}. Dentro de
begdef, los parámetros #1, #2, ... #nargs, se sustituyen por los valores que
proporcionas cuando llamas al entorno; ve los ejemplos abajo.
enddef Requerido; el texto se expande en cada aparición de \end{env}. Esto no puede
contener ningún parámetro, es decir, no puedes usar #1, #2, etc., aquı́ (pero ve
el ejemplo final a continuación).
Capı́tulo 12: Definiciones 127
Todos los entornos, es decir el código begdef, el entorno body y el código enddef se
procesan dentro de un grupo. Ası́, en el primer ejemplo a continuación, el efecto de \small
se limita a la cotización y no se extiende al material siguiendo el entorno.
Si intentas definir un entorno y el nombre ya se ha utilizado entonces obtienes algo como
‘Error de LaTeX: Comando \fred ya definido. O nombre \end... ilegal, ve la p.192
del manual’. Si intentas redefinir un entorno y el nombre aún no se ha utilizado, entonces
obtienes algo como ‘Error de LaTeX: Entorno hank indefinido.’.
Este ejemplo proporciona un entorno como quotation de LATEX excepto que se establecerá
en letra más peque~
na.
\newenvironment{smallquote}{%
\small\begin{quotation}
}{%
\end{quotation}
}
Esto tiene un argumento, que está en negrita al comienzo de un párrafo.
\newenvironment{point}[1]{%
\noindent\textbf{#1}
}{%
}
Este muestra el uso de un argumento opcional; da un entorno quotation que cita el autor.
\newenvironment{citequote}[1][Shakespeare]{%
\begin{quotation}
\noindent\textit{#1}:
}{%
\end{quotation}
}
El nombre del autor es opcional y de manera predeterminada es ‘Shakespeare’. En el
documento, utiliza el entorno como este.
\begin{citequote}[Lincoln]
...
\end{citequote}
El último ejemplo muestra cómo guardar el valor de un argumento para usarlo en enddef,
en este caso en una caja (véase Sección 20.5 [\sbox y \savebox], página 204).
\newsavebox{\quoteauthor}
\newenvironment{citequote}[1][Shakespeare]{%
\sbox\quoteauthor{#1}%
\begin{quotation}
}{%
\hspace{1em plus 1fill}---\usebox{\quoteauthor}
\end{quotation}
}
Capı́tulo 12: Definiciones 128
12.9 \newtheorem
Sinopsis:
\newtheorem{name}{title}
\newtheorem{name}{title}[numbered_within]
\newtheorem{name}[numbered_like]{title}
Define un nuevo entorno similar a un teorema. Puedes especificar uno de numbered within
y numbered like, o ninguno, pero no ambos.
La primera forma, \newtheorem{name}{title}, crea un entorno que se etiquetará con
title; ve el primer ejemplo a continuación.
La segunda forma, \newtheorem{name}{tı́tulo}[numbered_within], crea un entorno
cuyo contador está subordinado al counter existente numbered within, por lo que este
contador se restablecerá cuando numbered within se restablece. Ve el segundo ejemplo a
continuación.
La tercera forma \newtheorem{name}[numbered_like]{title}, con un argumento op-
cional entre los dos argumentos requeridos, crea un entorno cuyo contador compartirá el
contador definido previamente numbered like. Ve el tercer ejemplo.
Este comando crea un contador llamado name. Además, a menos que se use el argumento
opcional numbered like, dentro del entorno similar a un teorema, el valor actual de \ref
será el de \thenumbered_within (véase Sección 7.3 [\ref], página 54).
Esta declaración es global. Es frágil (véase Sección 12.11 [\protect], página 130).
Argumentos:
name El nombre del entorno. Es una cadena de letras. No debe comenzar con una
barra invertida, \. No debe ser el nombre de un entorno existente, y el nombre
del comando \name no debe estar definido.
title El texto que se imprimirá al principio del entorno, antes del número. Por ejemplo,
‘Teorema’.
numbered within
Opcional; el nombre de un contador ya definido, generalmente una unidad
seccional como chapter o section. Cuando el contador numbered within se
restablece y luego el entorno name el contador también se restablecerá.
Si no se utiliza este argumento opcional, el comando \thename se establece en
\arabic{name}.
numbered like
Opcional; el nombre de un entorno similar a un teorema ya definido. El nuevo
entorno se numerará en secuencia con numbered like.
Sin ningún argumento opcional, los entornos están numerados secuencialmente. El siguien-
te ejemplo tiene una declaración en el preámbulo que da como resultado ‘Definición 1’ y
‘Definición 2’ en producción.
\newtheorem{defn}{Definición}
\begin{document}
\section{...}
\begin{defn}
Capı́tulo 12: Definiciones 129
Primer definición
\end{defn}
\section{...}
\begin{defn}
Segunda definición
\end{defn}
Este ejemplo tiene el mismo cuerpo de documento que el anterior. Pero aquı́ el argumento
opcional de \newtheorem numbered within se da como section, por lo que el resultado es
como ‘Definición 1.1’ y ‘Definición 2.1’.
\newtheorem{defn}{Definición}[sección]
\begin{document}
\section{...}
\begin{defn}
Primer definición
\end{defn}
\section{...}
\begin{defn}
Segunda definición
\end{defn}
En el siguiente ejemplo hay dos declaraciones en el preámbulo, el segundo de los cuales
requiere que el nuevo entorno thm use el mismo contador como defn. Da ‘Definición 1.1’,
seguido por ‘Teorema 2.1’ y ‘Definición 2.2’.
\newtheorem{defn}{Definición}[sección]
\newtheorem{thm}[defn]{Teorema}
\begin{document}
\section{...}
\begin{defn}
Primer definición
\end{defn}
\section{...}
\begin{thm}
Primer thm
\end{thm}
\begin{defn}
Segunda definición
\end{defn}
12.10 \newfont
Este comando está obsoleto. Esta descripción está aquı́ solo para ayudar con los viejos
documentos. Los nuevos documentos deben definir letras en familias a través del nuevo
Capı́tulo 12: Definiciones 130
esquema de selección de letras que te permite, por ejemplo, asociar una negrita con una
romana (véase Capı́tulo 4 [Tipos de letra], página 17).
Sinopsis:
\newfont{\cmd}{font description}
Define un comando \cmd que cambiará el tipo de letra actual. La secuencia de control no
debe estar ya definida. Debe comenzar con una barra invertida, \.
La descripción de la letra consta de un nombre de letra y una opción cláusula at. LATEX
buscará en tu sistema un archivo llamado fontname.tfm. La cláusula at puede tener la forma
en dimen o factor de escala, donde un factor de ‘1000’ significa que no hay escalado. Para
los propósitos de LATEX, todo lo que hace es escalar todos los caracteres y otras dimensiones
de fuente relativo al tama~ no de dise~
no de la fuente, que es un valor definido en el archivo
.tfm.
Esto define dos tipos de letra equivalentes y algunos caracteres tipográficos en cada una.
\newfont{\testfontat}{cmb10 at 11pt}
\newfont{\testfontscaled}{cmb10 scaled 1100}
\testfontat abc
\testfontscaled abc
12.11 \protect
Todos los comandos de LATEX son frágiles —fragile— o robustos —robust—. Un comando
frágil se puede romper cuando se usa en el argumento para ciertos otros comandos. Comandos
que contienen datos que LATEX escribe en un archivo auxiliar y las relecturas posteriores son
frágiles. Esto incluye material que va en una tabla de contenido, lista de figuras, lista de
tablas, etc. Los comandos frágiles también incluyen saltos de lı́nea, cualquier comando que
tenga un argumento opcional, y muchos más. Para evitar que tales comandos rompan, una
solución es precederlos con el comando \protect.
Por ejemplo, cuando LATEX ejecuta \section{nombre sección} escribe el texto nombre
sección en el archivo auxiliar .aux, moviéndolo allı́ para usarlo en otra parte del documento
como en la tabla de contenido. Cualquier argumento que sea expandido internamente por
LATEX sin escribirlo directamente es referido como un argumento móvil. Un comando es
frágil si se puede expandir durante este proceso en un código TEX no válido. Algunos
ejemplos de los argumentos móviles son los que aparecen en el comando \caption{...}
(véase Sección 8.10 [figure], página 65), en el comando \thanks{...} (véase Sección 18.1
[\maketitle], página 181), y en @expresiones en los entornos tabular y array (véase
Sección 8.23 [tabular], página 92).
Si obtienes extra~nos errores de los comandos utilizados para mover argumentos, intenta
precediéndolos con \protect. Todos los comandos frágiles se deben proteger con su propio
\protect.
Aunque por lo general un comando \protect no duele, los comandos de longitud son
robustos y no deben estar precedidos por un comando \protect. Tampoco se puede usar
un comando \protect en el argumento para los comandos \addtocounter o \setcounter.
En este ejemplo, el comando \caption da un misterioso error sobre una llave extra.
Soluciona el problema precediendo a cada comando \raisebox con \protect.
\begin{figure}
Capı́tulo 12: Definiciones 131
...
\caption{Sede de la empresa A\raisebox{1pt}{B}\raisebox{-1pt}{C}}
\end{figure}
En el siguiente ejemplo, el comando \tableofcontents da un error porque los \(..\)
en el tı́tulo de la sección se expande a ilegal TEX en el archivo .toc. Puedes resolver esto
cambiando \(..\) a \protect\(..\protect\).
\begin{document}
\tableofcontents
...
\section{Einstein \( e=mc^2 \)}
...
\begin{tabular}{|l|}
\honorific{Mr/Ms} \fullname{Jones} \\ % sin espacio adicional
% aquı́
\honorific{ Mr/Ms} \fullname{Jones} % espacio adicional antes
% del tı́tulo
\end{tabular}
Para arreglar esto, cambia a \newcommand{\fullname}[1]{\ignorespaces\honorific~#1}.
El \ignorespaces también se usa a menudo en un \newenvironment al final de la cláusula
begin, como en \begin{newenvironment}{nombre entorno}{... \ignorespaces}{...}.
Para quitar los espacios en blanco del final de un entorno, usa \ignorespacesafterend.
Un ejemplo es que esto mostrará mucho mayor espacio vertical entre el primer y el segundo
entorno que entre el segundo y el tercero.
\newenvironment{eq}{\begin{equation}}{\end{equation}}
\begin{eq}
e=mc^2
\end{eq}
\begin{equation}
F=ma
\end{equation}
\begin{equation}
E=IR
\end{equation}
Poner un carácter de comentario % inmediatamente después del \end{eq} hará
desaparecer el espacio vertical, pero eso es inconveniente. La solución es cambiar a
\newenvironment{eq}{\begin{equation}}{\end{equation}\ignorespacesafterend}.
El paquete xspace proporciona \xspace. Es para escribir comandos que están dise~ nados
para ser utilizados principalmente en texto. Se debe colocar al final de la definición de estos
comandos. Inserta un espacio después de ese comando a menos que lo que siga inmediatamente
esté en una lista de excepciones. En este ejemplo, las llaves vacı́as no son necesarias.
\newcommand{\VT}{Vermont\xspace}
Nuestro colegio está en \VT .
\VT los veranos son agradables.
La lista de excepciones predeterminada contiene los caracteres ,.'/?;:!~-), la llave
de apertura y el comando de espacio de barra invertida explicados anteriormente, y los
comandos \footnote o \footnotemark. A~ naden a esa lista \xspaceaddexceptions{\myfni
\myfnii} que agrega \myfni y \myfnii a la lista, y elimina de esa lista como con
\xspaceaddexceptions{!}.
Un comentario: muchos expertos prefieren no usar \xspace. Ponerlo en una definición
significa que el comando generalmente obtendrá el espaciado correcto. Pero no es fácil
predecir cuándo ingresar llaves vacı́as porque \xspace se equivocará, como cuando le sigue
otro comando, por lo que \xspace puede hacer que editar material sea más difı́cil y más
propenso a errores que siempre insertar las llaves vacı́as.
134
13 Contadores
Todo lo que LATEX numera para ti tiene un contador asociado con él. El nombre del contador
suele ser el mismo que el nombre del entorno o comando asociado con el número, excepto
que el nombre del contador no tiene barra invertida \. Ası́, asociado al comando \chapter
está el contador chapter que mantiene la pista del número de capı́tulo.
A continuación se muestra una lista de los contadores utilizados en la clase document
estándar de LATEX para controlar la numeración.
parte párrafo figura enumi
capı́tulo subpárrafo tabla enumii
sección página nota al pie enumiii
subsección ecuación mpfootnote enumiv
subsubsección
El contador mpfootnote lo utiliza el comando \footnote dentro de una minipágina
(véase Sección 8.18 [minipage], página 77). Los contadores enumi a través de enumiv se
utilizan en el entorno enumerate, por hasta cuatro niveles de anidamiento (véase Sección 8.7
[enumerate], página 63).
Los contadores pueden tener cualquier valor entero, pero normalmente son positivos.
Los nuevos contadores se crean con \newcounter. Véase Sección 12.5 [\newcounter],
página 124.
\Roman{counter}
Imprime en números romanos en mayúsculas: ‘I’, ‘II’, . . . Si el valor del contador
es menor que 1, entonces no recibe ninguna advertencia o error, pero LATEX no
imprime nada en la salida.
\fnsymbol{counter}
Imprime el valor de counter usando una secuencia de nueve sı́mbolos que se
utilizan tradicionalmente para etiquetar las notas al pie. El valor de counter debe
estar entre 1 y 9, inclusive. Si el el valor del contador es menor que 0 o mayor que
9, entonces obtienes ‘Error de LaTeX: Contador demasiado grande’, mientras
que si es 0, no obtienes ningún error o advertencia pero LATEX no genera nada.
Aquı́ están los sı́mbolos:
Número Nombre Comando Sı́mbolo
1 asterisk \ast \ast
2 dagger \dagger †
3 ddagger \ddagger ‡
4 section-sign \S §
5 paragraph-sign \P ¶
6 double-vert \parallel k
7 double-asterisk \ast\ast \ast\ast
8 double-dagger \dagger\dagger ††
9 double-ddagger \ddagger\ddagger ‡‡
13.2 \usecounter
Sinopsis:
\usecounter{counter}
Usado en el segundo argumento del entorno list (véase Sección 8.16 [list], página 71),
este declara que los elementos de la lista serán numerados por counter. Inicializa counter a
cero y organiza que cuando se llama a \item sin su argumento opcional, entonces counter
se incrementa en \refstepcounter, haciendo que su valor sea el valor actual de ref (véase
Sección 7.3 [\ref], página 54). Este comando es frágil (véase Sección 12.11 [\protect],
página 130).
Al ponerlo en el preámbulo del documento, este ejemplo crea un nuevo entorno de lista
enumerada con testcounter:
\newcounter{testcounter}
\newenvironment{test}{%
\begin{list}{}{%
\usecounter{testcounter}
}
}{%
\end{list}
}
13.3 \value
Sinopsis:
Capı́tulo 13: Contadores 136
\value{counter}
Se expande al valor del contador counter. (Ten en cuenta que el nombre de un contador
no comienza con una barra invertida).
Este ejemplo genera ‘El contador de prueba es 6. Otro contador es 5.’.
\newcounter{test} \setcounter{test}{5}
\newcounter{other} \setcounter{other}{\value{test}}
\addtocounter{test}{1}
13.4 \setcounter
Sinopsis:
\setcounter{counter}{value}
Configura globalmente el contador counter para que tenga el valor del argumento value,
que debe ser un número entero. Por lo tanto, puedes establecer un valor del contador como
\setcounter{section}{5}. Ten en cuenta que el nombre del contador no comienza con
una barra invertida.
En este ejemplo, si el contador theorem tiene el valor 12, entonces la segunda lı́nea
imprimirá ‘XII’.
\setcounter{ejercicio}{\value{teorema}}
Aquı́ está en Roman: \Roman{exercise}.
13.5 \addtocounter
Sinopsis:
\addtocounter{counter}{value}
Incrementar globalmente counter por la cantidad especificada por el argumento value,
que puede ser negativo.
En este ejemplo, el valor de la sección aparece como ‘VII’.
\setcounter{section}{5}
\addtocounter{section}{2}
Aquı́ está en Roman: \Roman{section}.
Capı́tulo 13: Contadores 137
13.6 \refstepcounter
Sinopsis:
\refstepcounter{counter}
Incrementa globalmente el valor de counter en uno, al igual que \stepcounter (véase
Sección 13.7 [\stepcounter], página 137). La diferencia es que este comando restablece el valor
de cualquier contador numerado dentro de él. (Para la definición de “contadores numerados
dentro”, véase Sección 12.5 [\newcounter], página 124).
Además, este comando también define el valor actual de \ref es el resultado de
\thecounter.
Mientras que el valor del contador se establece globalmente, el valor de \ref se establece
localmente, es decir, dentro del grupo actual.
13.7 \stepcounter
Sinopsis:
\stepcounter{counter}
Agrega globalmente uno a counter y restablece todos los contadores numerados dentro de
ella. (Para la definición de “contadores numerados dentro”, véase Sección 12.5 [\newcounter],
página 124).
Este comando difiere de \refstepcounter en que este no influye en las referencias; es
decir, no define el valor actual de \ref será el resultado de \thecounter (véase Sección 13.6
[\refstepcounter], página 137).
14 Longitudes
length es una medida de distancia. Muchos comandos de LATEX toman un argumento como
longitud.
Las longitudes vienen en dos tipos. Un longitud rı́gida como 10pt no contiene un
componente plus o minus. (TEX sencillo llama a esto una dimensión). Una longitud de
goma (que TEX simple llama a skip o glue) como con 1cm plus0.05cm minus0.01cm puede
contener uno o ambos componentes. En esa longitud elástica, el 1cm es la longitud natural
mientras que los otros dos, componentes plus y minus, permiten que TEX estire o reduzca
la longitud para optimizar la colocación.
Las siguientes ilustraciones utilizan estos dos comandos.
% hace una barra negra de 10pt de alto y #1 de ancho
\newcommand{\blackbar}[1]{\rule{#1}{10pt}}
% Hace un cuadro alrededor del #2 que tenga el #1 de ancho (excluyendo
% el borde)
\newcommand{\showhbox}[2]{%
\fboxsep=0pt\fbox{\hbox a #1{#2}}}
Este ejemplo usa esos comandos para mostrar una barra negra de 100 puntos de largo entre
‘XXX’ y ‘YYY’. Esta longitud es rı́gida.
XXX\muestracaja{100pt}{\barranegra{100pt}}YYY
En cuanto a las longitudes elásticas, la reducción es más simple: con 1cm minus 0.05cm,
la longitud natural es 1 cm pero TEX la puede reducir hasta 0.95 cm. Más allá de eso, TEX
se niega a encogerse más. Por lo tanto, debajo del primero funciona bien, produciendo un
espacio de 98 puntos entre las dos barras.
XXX\showhbox{300pt}{%
\blackbar{101pt}\hspace{100pt minus 2pt}\blackbar{101pt}}YYY
XXX\showhbox{300pt}{%
\blackbar{105pt}\hspace{100pt minus 1pt}\blackbar{105pt}}YYY
Pero el segundo recibe una advertencia como ‘Overfull \hbox (1.0pt too wide)
detectado en la lı́nea 17’. En la salida, la primer ‘Y’ se sobrescribe al final de la barra
negra, porque el material de la caja es más ancho que los 300 pt asignados, ya que TEX se
ha negado a reducir el total a menos de 309 puntos.
Estirar es como encoger excepto que si se le pide a TEX que estire más allá de la cantidad
dada, lo hará. Aquı́ la primera lı́nea está bien, produciendo un espacio de 110 puntos entre
las barras.
XXX\showhbox{300pt}{%
\blackbar{95pt}\hspace{100pt plus 10pt}\blackbar{95pt}}YYY
XXX\showhbox{300pt}{%
\blackbar{95pt}\hspace{100pt plus 1pt}\blackbar{95pt}}YYY
En la segunda lı́nea TEX necesita un tramo de 10 puntos y solo se especificó 1 punto.
TEX estira el espacio al requerido pero te da una advertencia como ‘Infracompleto \hbox
(maliciosos 10000) detectados en la lı́nea 22’. (No hablaremos de la malicia).
Capı́tulo 14: Longitudes 139
Puedes estirar y encoger en la misma longitud, como en 1ex plus 0.05ex minus 0.02ex.
Si TEX está configurando dos o más longitudes elásticas, asigna la ampliación o reducción
en proporción.
XXX\showhbox{300pt}{%
\blackbar{100pt}% left
\hspace{0pt plus 50pt}\blackbar{80pt}\hspace{0pt plus 10pt}% middle
\blackbar{100pt}}YYY % right
Las barras izquierda y derecha ocupan 100 puntos, por lo que la del medio necesita otros 100.
La barra central es de 80 puntos por lo que los dos \hspace se deben extender 20 puntos.
Porque los dos son plus 50pt y plus 10pt, TEX obtiene 5/6 del tramo del primer espacio y
1/6 del segundo.
El componente plus o minus de una longitud elástica puede contener un componente fill,
como en 1in plus2fill. Esto da la longitud infinita capacidad de estiramiento o contracción
para que TEX pueda establecer a cualquier distancia. Aquı́ las dos figuras estarán espaciadas
por igual en la página.
\begin{minipage}{\linewidth}
\hspace{0pt plus 1fill}\includegraphics{godel.png}%
\hspace{0pt plus 1fill}\includegraphics{einstein.png}%
\hspace{0pt plus 1fill}
\end{minipage}
TEX tiene tres niveles de infinito para componentes de pegamento: fil, fill y filll.
Los últimos son más infinitos que los anteriores. Por lo general, los autores de documentos
solo usan el del medio (véase Sección 19.3 [\hfill], página 187, y véase Sección 19.15 [\vfill],
página 197).
Multiplicar una longitud elástica por un número la convierte en una longi-
tud rı́gida, por lo que después de \setlength{\ylength}{1in plus 0.2 in} y
\setlength{\zlength}{3\ylength} entonces el valor de \zlength es 3in.
Otras tres unidades se definen de acuerdo con la letra actual, en lugar de que sea una
dimensión absoluta.
ex La altura x de la letra actual ex, tradicionalmente la altura de la letra minúscula
x, se usa a menudo para longitudes verticales.
em Del mismo modo em, tradicionalmente el ancho de la letra M mayúscula, se
utiliza a menudo para longitudes horizontales. Este también a menudo es el
tama~ no de la letra actual, por ejemplo, una letra nominal 10 pt debe tener
1 em = 10 pt. LATEX tiene varios comandos para producir espacios horizontales
basados en em (véase Sección 19.1 [\enspace - \quad y \qquad], página 186).
mu Finalmente, en el modo matemático, muchas definiciones se expresan en términos
de la unidad matemática mu, definida por 1 em = 18 mu, donde el em es tomar
de la familia actual de sı́mbolos matemáticos. Véase Sección 16.6 [Espaciado en
modo matemático], página 173.
El uso de estas unidades puede ayudar a que una definición funcione mejor en todos los
cambios de letra. Por ejemplo, una definición del espacio vertical entre lista de elementos
dados como \setlength{\itemsep}{1ex plus 0.05ex minus 0.01ex} es más probable que
siga siendo razonable si se cambia la letra que una definición dada en puntos.
14.2 \setlength
Sinopsis:
\setlength{\len}{amount}
Establece la longitud \len en amount. El nombre de longitud \len tiene que ser una
secuencia de control (véase Sección 12.1.1 [Secuencias de control], página 121), y como tal
debe comenzar con una barra invertida, \ bajo circunstancias normales. La cantidad puede
ser una longitud elástica (véase Capı́tulo 14 [Longitudes], página 138). Puede ser positivo,
negativo o cero, y puede estar en cualquier unidad que LATEX entienda (véase Sección 14.1
[Unidades de longitud], página 139).
A continuación, con los valores predeterminados de LATEX, el primer párrafo tendrá
sangrı́a mientras que el segundo no.
Le dije al médico que me rompı́ la pierna en dos lugares.
\setlength{\parindent}{0em}
Dijo que dejara de ir a esos lugares.
Si no declaraste \len con \newlength, por ejemplo si lo escribes mal como en
\newlength{\specparindent}\setlength{\sepcparindent}{...}, entonces obtienes un
error como ‘Secuencia de control no definida. <argument> \sepcindent’. Si omites la
barra invertida al comienzo del nombre de la longitud entonces obtienes un error como
‘Número faltante, tratado como cero.’.
14.3 \addtolength
Sinopsis:
\addtolength{\len}{amount}
Capı́tulo 14: Longitudes 141
Incrementa la longitud \len por cantidad. El nombre de longitud \len tiene que ser una
secuencia de control (véase Sección 12.1.1 [Secuencias de control], página 121), y como tal
debe comenzar con una barra invertida, \ bajo circunstancias normales. La cantidad es una
longitud elástica (véase Capı́tulo 14 [Longitudes], página 138). Puede ser positivo, negativo
o cero, y puede estar en cualquier unidad que LATEX entienda (véase Sección 14.1 [Unidades
de longitud], página 139).
A continuación, si \parskip comienza con el valor 0pt plus 1pt
Doctor: ¿cómo está el ni~ no que se tragó el dólar de plata?
\addtolength{\parskip}{1pt}
14.4 \settodepth
Sinopsis:
\settodepth{\len}{text}
Establece la longitud \len en la profundidad del cuadro en el que se encuentra LATEX
escribiendo el argumento text. El nombre de longitud \len tiene que ser una secuencia de
control (véase Sección 12.1.1 [Secuencias de control], página 121), y como tal debe comenzar
con una barra invertida, \ en circunstancias normales.
Esto imprimirá qué tan bajo van los descendientes de caracteres.
\newlength{\alphabetdepth}
\settodepth{\alphabetdepth}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetdepth
Si no declaraste \len con \newlength, si por ejemplo escribes mal lo anterior como
\setto depth{\aplhabet depth}{abc...}, entonces obtienes algo como ‘Secuencia
de control indefinida. <argument> \aplhabetdepth’. Si omites la barra invertida
\len, como en \settodepth{alphabetdepth}{...} entonces obtienes algo como ‘Número
faltante, tratado como cero. <para ser leı́do de nuevo> \setbox’.
14.5 \settoheight
Sinopsis:
\settoheight{\len}{text}
Establece la longitud \len a la altura del cuadro en el que se coloca LATEX escribe el
argumento text. El nombre de longitud \len tiene que ser una secuencia de control (véase
Capı́tulo 14: Longitudes 142
Sección 12.1.1 [Secuencias de control], página 121), y como tal debe comenzar con una barra
invertida, \ en circunstancias normales.
Esto imprimirá qué tan alto van los caracteres.
\newlength{\alphabetheight}
\settoheight{\alphabetheight}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetheight
Si no se ha declarado tal longitud \len con \newlength, si por ejemplo escribes mal como
\settoheight{\aplhabetheight}{abc...}, entonces obtienes algo como ‘Secuencia de
control indefinida. <argumento> \alphabetheight’. Si y deja la barra invertida fuera de
\len, como en \settoheight{alphabetheight}{...} entonces obtienes algo como ‘Número
faltante, tratado como cero. <para ser leı́do de nuevo> \setbox’.
14.6 \settowidth
Sinopsis:
\settowidth{\len}{text}
Establece la longitud \len al ancho del cuadro en el que LATEX coloca el argumento
text escrito. El nombre de longitud \len tiene que ser una secuencia de control (véase
Sección 12.1.1 [Secuencias de control], página 121), y como tal debe comenzar con una barra
invertida, \ en circunstancias normales.
Esto imprime el ancho del alfabeto ASCII en minúsculas.
\newlength{\alphabetwidth}
\settowidth{\alphabetwidth}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetwidth
Si no se ha declarado tal longitud \len con \newlength, si, por ejemplo, escribes mal
lo anterior como \settowidth{\aplhabetwidth}{abc...}, entonces obtienes algo como
‘Secuencia de control indefinida. <argumento> \aplhabetwidth’. Si y deja la barra in-
vertida fuera de \len, como en \settoheight{alphabetwidth}{...} entonces obtienes algo
como ‘Número faltante, tratado como cero. <para ser leı́do de nuevo> \setbox’.
14.7 \stretch
Sinopsis:
\stretch{number}
Produce una longitud de caucho con longitud natural cero y number veces \fill unidades
de capacidad de estiramiento (véase Capı́tulo 14 [Longitudes], página 138). El number puede
ser positivo o negativo. Este comando es robusto (véase Sección 12.11 [\protect], página 130).
Este comando es robusto. (véase Sección 12.11 [\protect], página 130). En este ejemplo
horizontal, LATEX produce tres marcas y la distancia entre el primero y el segundo es otra
vez la mitad de largo que la distancia entre el segundo y tercero.
\rule{0.4pt}{1ex}\hspace{\stretch{1.5}}%
\rule{0.4pt}{1ex}\hspace{\stretch{1}}%
\rule{0.4pt}{1ex}
Capı́tulo 14: Longitudes 143
En este ejemplo vertical, el ‘Dedicamos ...’ tendrá tres veces el espacio debajo de él que
encima de él.
\newenvironment{dedication}{% en el preámbulo del documento
\clearpage\thispagestyle{empty}%
\vspace*{\stretch{1}} % de espacio extensible en la parte
% superior
\it
}{%
\vspace{\stretch{3}} % espacio en el bot es 3 veces mayor que
% en la parte superior
\clearpage
}
...
\begin{dedication} % en el cuerpo del documento
Dedicamos este libro a nuestras esposas.
\end{dedication}
14.8 Expresiones
Sinopsis, una de:
\numexpr expression
\dimexpr expression
\glueexpr expression
\muglue expression
Cualquier lugar donde puedes escribir un número entero, o una dimensión pegamento
TEX, o TEX, o muglue, en su lugar puedes escribir una expresión para calcular ese tipo de
cantidad.
Un ejemplo es que \the\dimexpr\linewidth-4pt\relax produce como salida la longitud
que es cuatro puntos menos que el ancho de una lı́nea (el único propósito de \the es mostrar
el resultado en el documento). Análogamente, \romannumeral\numexpr6+3\relax produce
‘ix’ y \the\glueexpr 5pt plus 1pt * 2 \relax producirá ‘10.0pt plus 2.0pt’.
Una conveniencia aquı́ sobre hacer cálculos mediante la asignación de registros y entonces
usando \advance, etc., es que la evaluación de expresiones no implica asignaciones y, por lo
tanto, se puede realizar en lugares donde las asignaciones no están permitidas. El siguiente
ejemplo calcula el ancho del \parbox.
\newlength{\offset}\setlength{\offset}{2em}
\begin{center}
\parbox{\dimexpr\linewidth-\offset*3}{Con malicia hacia ninguno con
caridad para todos con firmeza en el derecho como Dios nos da para ver
el derecho esforcémonos en terminar el trabajo en el que estamos para
vendar las heridas de la nación, para cuidar de aquel que habrá
llevado la batalla y para su viuda y su huérfano \textasciitilde\ para
hacer todo lo que puedas alcanzar y cuidar una paz justa y duradera
entre nosotros y con todas las naciones ---Abraham Lincoln, Segundo
Discurso Inaugural, de el memorial}
\end{center}
Capı́tulo 14: Longitudes 144
La expresión consta de uno o más términos del mismo tipo (entero, dimensión, etc.) que
se suman o se restan. Un término que es un tipo de número, dimensión, etc., consta de un
factor de ese tipo, opcionalmente multiplicado o dividido por factores. Un factor de un tipo
es ya sea una cantidad de ese tipo o una subexpresión entre paréntesis. La expresión produce
un resultado del tipo dado, por lo que \numexpr produce un número entero, \dimexpr
produce una dimensión, etc.
En el ejemplo de cita anterior, cambiando a \dimexpr\linewidth-3*\offset da el
error Unidad de medida ilegal (pt insertado). Esto se debe a que para \dimexpr y
\glueexpr, la entrada consiste en una dimensión o valor de pegamento seguido de un factor
de multiplicación opcional, y no al revés. Ası́ \the\dimexpr 1pt*10\relax es válido y
produce ‘10.0pt’, pero \the\dimexpr 10*1pt\relax da el error Unidad ilegal.
Las expresiones absorben tókenes y llevan a cabo las matemáticas apropiadas has-
ta un \relax (que será absorbido), o hasta el primer token no válido. Por lo tanto,
\the\numexpr2+3px imprimirá ‘5px’, porque LATEX lee el \numexpr2+3, que está formado
por números, y luego encuentra la letra p, que no puede ser parte de un número. Por lo
tanto, termina la expresión y produce ‘5’, seguido del texto normal ‘px’.
Este comportamiento de terminación es útil en las comparaciones. En
\ifnum\numexpr\parindent*2 < 10pt Yes\else No\fi, el menor que sign termina la
expresión y el resultado ‘No’ es (en un artı́culo estándar de LATEX).
Las expresiones pueden usar los operadores +, -, * y / junto con paréntesis para subexpre-
siones, (...). En pegar expresiones en que las partes plus y minus no necesitan paréntesis
para ser afectadas por un factor. Entonces \the\glueexpr 5pt plus 1pt * 2 \relax da
como resultado ‘10pt plus 2pt’.
TEX obligará a otros tipos numéricos de la misma manera que lo hace cuando hace
asignación de registro. Ası́ \the\numexpr\dimexpr 1pt\relax\relax dará como resultado
‘65536’, que es 1pt convertido a puntos escalados (véase [unidades de longitud sp], página 139,
la unidad interna de TEX) y luego forzado a un número entero. Con un \glueexpr aquı́, el
estirar y encoger se eliminarı́a. Yendo por el contrario, un \numexpr dentro de un \dimexpr
o \glueexpr necesitará unidades apropiadas, como en \the\dimexpr\numexpr 1 + 2\relax
pt\relax, que produce ‘3.0pt’.
Detalles de la aritmética: cada factor se comprueba para estar en el rango permitido, los
números deben ser menores que 231 en valor absoluto, y las dimensiones o los componentes
del pegamento deben ser inferiores a 214 puntos, o mu, o fil, etc. Las operaciones aritméticas
se realizan individualmente, a excepción de una operación de escala (una multiplicación
seguida inmediatamente por una división) que se realiza como una operación combinada con
un producto de 64 bits como valor intermedio. El resultado de cada operación se vuelve a
comprobar para estar en el rango permitido.
Finalmente, la división y la escala se realizan con redondeo (a diferencia de TEX’s \divide,
que trunca). De este modo \the\dimexpr 5pt*(3/2)\relax pone ‘10.0pt’ en el documento,
porque redondea 3/2 a 2, mientras que \the\dimexpr 5pt*(4/3)\relax produce ‘5.0pt’.
145
15 Crear párrafos
Para comenzar un párrafo, simplemente escribe un texto. Para acabar con el párrafo actual,
pon una lı́nea vacı́a. Son tres párrafos, cuya separación se hace mediante dos lı́neas vacı́as.
Es una verdad universalmente reconocida, que un solo hombre en
posesión de buena fortuna, debe estar necesitado de una esposa.
Por muy poco conocidos que puedan ser los sentimientos o las opiniones
de un hombre ası́ sobre su primer vez entrando en un barrio, esta
verdad también está grabada en la mente de las familias aleda~
nas, que
se le considera la propiedad legı́tima de una u otra de sus hijas.
``Mi querido se~ nor Bennet'', le dijo su dama un dı́a, ``¿Has oı́do que
Netherfield Park está alquilado por fin?''
Un separador de párrafo puede estar hecho de una secuencia de al menos una lı́nea de
espacio en blanco, al menos una de las cuales no termina con un comentario. Una lı́nea en
blanco es una lı́nea que está vacı́a o compuesta solo de caracteres en blanco, como un espacio
o tabulación. Los comentarios en el código fuente comienzan con un % y se extienden hasta
el final de la lı́nea. En el siguiente ejemplo, las dos columnas son idénticas:
\documentclass[twocolumn]{article}
\begin{document}
Primer párrafo.
Segundo párrafo.
\newpage
Primer párrafo
Segundo párrafo.
\end{document}
Una vez que LATEX ha recopilado todo el contenido de un párrafo, divide el contenido
en lı́neas de una manera optimizada en todo el párrafo (véase Capı́tulo 9 [Salto de lı́nea],
página 106).
Hay lugares donde no se permite un nuevo párrafo. No pongas una lı́nea en blanco en
modo math (véase Capı́tulo 17 [Modos], página 179); aquı́ la lı́nea en blanco antes del
\end{equation}
\begin{equation}
2^{|S|} > |S|
\end{equation}
obtendrás el error ‘Se inserto el $ faltante’. Del mismo modo, la lı́nea en blanco en este
argumento \section
\section{aaa
Capı́tulo 15: Crear párrafos 146
bbb}
obtiene ‘¿Argumento faltante? {aaa ! El párrafo terminó antes de completar
\@sect’.
15.1 \par
Sinopsis (ten en cuenta que mientras lees la entrada TEX convierte cualquier secuencia de
una o más lı́neas en blanco a un \par, Capı́tulo 15 [Crear párrafos], página 145):
\par
Finaliza el párrafo actual. La forma habitual de separar párrafos es con una lı́nea en
blanco pero el comando \par es completamente equivalente. Este comando es robusto (véase
Sección 12.11 [\protect], página 130).
Este ejemplo usa \par en lugar de una lı́nea en blanco simplemente por legibilidad.
\newcommand{\syllabusLegalese}{%
\whatCheatingIs\par\whatHappensWhenICatchYou}
En el modo LR, el comando \par no hace nada y se ignora. En modo de párrafo,
el comando \par finaliza el modo de párrafo, cambiando LATEX a modo vertical (véase
Capı́tulo 17 [Modos], página 179).
No puedes usar el comando \par en modo matemático. Tampoco lo puedes utilizar
en el argumento de muchos comandos, como los comandos de seccionado, por ejemplo,
\section (véase Capı́tulo 15 [Crear párrafos], página 145, y Sección 12.1 [\newcommand y
\renewcommand], página 119).
El comando \par no es lo mismo que el comando \paragraph. Este último es, como
\section o \subsection, un comando de seccionado utilizado por las clases de documentos
estándar LATEX (véase Sección 6.5 [\subsubsection - \paragraph y \subparagraph], página 47).
El comando \par no es lo mismo que \newline o el salto de lı́nea doble barra invertida,
\\. La diferencia es que \par finaliza el párrafo, no solo la lı́nea, y también desencadena
la adición de el espacio vertical entre párrafos \parskip (véase Sección 15.3 [\parindent y
\parskip], página 147).
La salida de este ejemplo
xyz
\setlength{\parindent}{3in}
\setlength{\parskip}{5in}
\noindent test\indent test1\par test2
es: después de ‘xyz’ hay un salto vertical de 5 pulgadas y luego aparece ‘test’, alineado con
el margen izquierdo. En la misma lı́nea, hay un espacio horizontal vacı́o de 3 pulgadas y
luego aparece ‘test1’. Finalmente, hay un espacio vertical de 5 pulgadas, seguido de un
párrafo nuevo con una sangrı́a de párrafo de 3 pulgadas, y luego LATEX pone el texto ‘test2’.
o
\noindent
Va al modo horizontal (véase Capı́tulo 17 [Modos], página 179). El comando \indent
primero genera un cuadro vacı́o cuyo ancho es \parindent. Estos comandos son robustos
(véase Sección 12.11 [\protect], página 130).
Normalmente se crea un nuevo párrafo poniendo una lı́nea en blanco. Véase Sección 15.1
[\par], página 146, por la diferencia entre este comando y \par. Para comenzar un párrafo
sin sangrı́a, o continuar un párrafo interrumpido, usa \noindent.
En medio de un párrafo, el comando \noindent no tiene efecto, porque LATEX ya está en
modo horizontal allı́. El único efecto del comando \indent es generar un espacio.
Este ejemplo inicia un párrafo nuevo.
... fin del párrafo anterior.
\begin{center}
\begin{tabular}{rl} ... \end{tabular}
\end{center}
17pt para 11pt y 1.5em para 12pt. En documentos de dos columnas es 1em. (Estos valores se
establecen antes de que LATEX llame a \normalfont para que em se derive de la letra predeter-
minada, Computer Modern. Si utilizas una letra diferente y luego estableces \parindent en
1 em coincidentes en esa letra, pon \AtBeginDocument{\setlength{\parindent}{1em}}
en el preámbulo).
El valor predeterminado para \parskip en las clases document estándar de LATEX es 0pt
plus1pt.
16 Fórmulas math
Produce texto matemático poniendo LATEX en modo matemático o pantalla modo matemático
(véase Capı́tulo 17 [Modos], página 179). Este ejemplo muestra ambos.
La ecuación de onda para \( u \) es
\begin{displaymath}
\frac{\partial^2u}{\partial t^2} = c^2\nabla^2u
\end{displaymath}
donde \( \nabla^2 \) es el Laplacian espacial y \( c \) es constante.
El modo math es para matemáticas en lı́nea. En el ejemplo anterior se invoca por la \(
inicial y terminado por la \) final correspondiente. El modo de pantalla matemática es para
ecuaciones mostradas y aquı́ es invocado por el entorno displaymath. Ten en cuenta que
cualquier texto matemático que sea, incluido el texto matemático que consta de un solo
carácter, se maneja en modo matemático.
Cuando está en modo matemático o en modo de visualización matemática, LATEX maneja
muchos aspectos de tu texto de entrada de manera diferente que en otros modos de texto.
Por ejemplo,
contrastar x+y con \( x+y \)
en el modo matemático, las letras están en cursiva y el espacio alrededor del signo más es
diferente.
Hay tres formas de hacer fórmulas en lı́nea, para poner LATEX en modo math.
\( material matemático \)
$ material matemático $
\begin{math} material matemático \end{math}
Se prefiere la primera forma y la segunda es bastante común, pero la tercera forma rara vez
se usa. A veces puedes usar uno y a veces otro, como en \(x\) y $y$. Puedes utilizar estos
en el párrafo o en modo LR (véase Capı́tulo 17 [Modos], página 179).
Para mostrar fórmulas, pon a LATEX en modo de visualización matemática con o:
\begin{displaymath}
material matemático
\end{displaymath}
o
\begin{equation}
material matemático
\end{equation}
(véase Sección 8.5 [displaymath], página 61, véase Sección 8.9 [equation], página 65). La
única diferencia es que con el entorno equation, LATEX pone un número de fórmula junto
a la fórmula. La construcción \[ math \] es equivalente a \begin{displaymath} math
\end{displaymath}. Estos entornos sólo se pueden utilizar en el modo párrafo (véase
Capı́tulo 17 [Modos], página 179).
La American Mathematical Society ha puesto a disposición gratuitamente un conjunto
de paquetes que amplı́an enormemente sus opciones para escribir matemáticas, amsmath
y amssymb (también ten en cuenta el paquete mathtools que es una extensión y carga
amsmath). Los nuevos documentos que tendrán texto matemático deben usar estos paquetes.
Capı́tulo 16: Fórmulas math 150
Las descripciones de estos paquetes están fuera del alcance de este documento; ve su
documentación en CTAN.
\bigtriangleup
4 Triángulo abierto de tama~
no variable o n-ary apuntando hacia arriba (binario).
Sinónimo: \varbigtriangleup.
\bigsqcup F
Unión cuadrada de tama~
no variable u (operador) n-ario.
\biguplus U
Operador de unión de tama~
no variable, o n-ario, con un signo más (operador).
(Ten en cuenta que el nombre solo tiene una p).
W
\bigvee De tama~
no variable, o n-ario, u (operador) lógico.
\bigwedge V
De tama~
no variable, o n-ario, y lógico (operador).
\bot arriba, abajo, elemento mı́nimo de un conjunto de elementos parcialmente
ordenado, o una contradicción (común). Consulta también \top.
\bowtie ./ Unión natural de dos relaciones (relación).
\Box 2 Operador modal por necesidad; caja cuadrada abierta (común). No disponible
en TEX simple. En LATEX necesitas cargar el paquete amssymb.
\bullet • Vi~
neta (binario). Similar: multiplicación dot \cdot.
\cap ∩ Intersección de dos conjuntos (binario). Similar: de tama~
no variable opera-
tor \bigcap.
\cdot · Multiplicación (binario). Similar: Bala dot \bullet.
\chi χ Chi griego minúscula (común).
\circ ◦ Composición de funciones, operador de anillo (binario). Similar:
operator \bigcirc de tama~
no variable.
\clubsuit
♣ Palo de la carta del club (común).
\complement
Complemento de conjunto, usado como superı́ndice como en $S^\complement$
(común). No disponible en TEX simple. En LATEX necesitas cargar el paquete
amssymb. También usado: $S^{\mathsf{c}}$ or $\bar{S}$.
\cong ∼
= Congruente (relación).
`
\coprod Coproducto (operador).
\cup ∪ Unión de dos conjuntos (binario). Similar: de tama~
no variable
operator \bigcup.
\dagger † Relación Dagger (binario).
\dashv a Guión con torniquete invertido vertical (relación). Similar: turnstile \vdash.
\ddagger ‡ Relación de doble daga (binario).
\Delta Δ Delta mayúscula griega, usado para incremento (común).
Capı́tulo 16: Fórmulas math 153
\hookleftarrow
←- Flecha izquierda enganchada (relación).
\hookrightarrow
,→ Flecha derecha enganchada (relación).
\iff ⇐⇒ Si y solo si (relación). Es \Longleftrightarrow con un \thickmuskip a
cada lado.
\Im = Parte imaginaria (común). Ve: parte real \Re.
\imath i sin punto; se usa cuando pones un acento en una i (véase Sección 16.4 [Acentos
matemáticos], página 171).
\in ∈ Establecer elemento (relación). Ve también: semilunar minúscula
epsilon \epsilon y letra minúscula epsilon \varepsilon.
\infty ∞ Infinito (común).
R
\int Integral (operador).
\iota ι Letra griega minúscula (común).
\Join 1 Sı́mbolo de corbatı́n condensado (relación). No disponible en TEX estándar.
\jmath J sin punto; se usa cuando pones un acento en una j (véase Sección 16.4 [Acentos
matemáticos], página 171).
\kappa κ Letra griega minúscula (común).
\Lambda Λ letra griega mayúscula (común).
\lambda λ Letra griega minúscula (común).
\land ∧ Lógico y (binario). Sinónimo: \wedge. Consulta también or lógico \lor.
\langle h Ángulo izquierdo, o secuencia, corchete (apertura). Similar: menos-que <.
Coincide con \rangle.
\lbrace { Llave izquierda (apertura). Sinónimo: \{. Coincide con \rbrace.
\lbrack [ Corchete izquierdo (apertura). Sinónimo: [. Coincide con \rbrack.
\lceil d Soporte de techo izquierdo, como un corchete pero con la parte inferior rasurada
(apertura). Coincide con \rceil.
\le ≤ Menor o igual que (relación). Este es un sinónimo para \leq.
\leadsto ; Flecha derecha ondulada (relación). Para obtener este sı́mbolo fuera del modo
matemático, puedes poner \newcommand*{\Leadsto}{\ensuremath{\leadsto}}
en el preámbulo y entonces usa \Leadsto en su lugar.
\Leftarrow
⇐ Está implı́cito en la flecha izquierda de doble lı́nea (relación). Similar: flecha
izquierda de una sola lı́nea \leftarrow.
\leftarrow
← Flecha izquierda de una sola lı́nea (relación). Sinónimo: \gets. Similar: doble
lı́nea izquierda flecha \Leftarrow.
Capı́tulo 16: Fórmulas math 155
\leftharpoondown
) Arpón izquierdo de una lı́nea, lengüeta debajo de la lengüeta (relación).
\leftharpoonup
( Arpón izquierdo de una lı́nea, púa sobre barra (relación).
\Leftrightarrow
⇔ Biimplicación; flecha de dos puntas de doble lı́nea (relación). Similar: flecha
de dos puntas de una sola lı́nea \leftrightarrow.
\leftrightarrow
↔ Flecha de dos puntas de una sola lı́nea (relación). Similar: doble lı́nea flecha
de dos puntas \Leftrightarrow.
\leq ≤ Menor o igual que (relación). Este es un sinónimo para \le.
\lfloor b Soporte de piso izquierdo (apertura). Coincidencia: \floor.
\lhd Punta de flecha, es decir, triángulo, apuntando a la izquierda (binario). Para
el sı́mbolo de subgrupo normal, debe cargar amssymb y usa \vartriangleleft
(que es una relación y ası́ da un mejor espaciado).
\ll Mucho menos que (relación). Similar: mucho mayor que \gg.
\lnot ¬ Negación lógica (común). Sinónimo: \neg.
\longleftarrow
←− Flecha izquierda larga de una sola lı́nea (relación). Similar: largo flecha
izquierda de doble lı́nea \Longleftarrow.
\longleftrightarrow
←→ Flecha larga de dos puntas de una sola lı́nea (relación). Similar: larga doble
lı́nea flecha de dos puntas \Longleftrightarrow.
\longmapsto
7−→ Flecha izquierda larga de una sola lı́nea que comienza con una barra vertical
(relación). Similar: versión más corta \mapsto.
\longrightarrow
−→ Flecha derecha larga de una sola lı́nea (relación). Similar: largo flecha
derecha de doble lı́nea \Longrightarrow.
\lor ∨ Lógico o (binario). Sinónimo: \vee. Consulta también y lógico \land.
\mapsto 7→ Flecha izquierda de una sola lı́nea que comienza con una barra vertical
(relación). Similar: versión más larga \longmapsto.
\mho 0 Conductancia, semicı́rculo omega mayúscula girada (común).
\mid | Barra vertical de una lı́nea (relación). Un uso tı́pico de \mid es para un conjunto
\{\, x \mid x\geq 5 \,\}.
Similar: \vert y | producen la misma lı́nea única de sı́mbolo de barra vertical
pero sin ningún espacio (caen en la clase ordinarios) y no los debes usar como
relaciones, sino solo como ordinales, es decir, sı́mbolos de notas al pie. Para
el valor absoluto, consulta la entrada para \vert y por norma ve la entrada
para \Vert.
Capı́tulo 16: Fórmulas math 156
\models |= Implica o satisface; torniquete doble, guión doble corto (relación). Similar:
guión doble largo \vDash.
\mp ∓ Menos o más (relación).
\mu µ Letra griega minúscula (común).
\nabla ∇ Operador del, o diferencial, de Hamilton (común).
\natural \ Notación musical natural (común).
\ne 6= No es igual (relación). Sinónimo: \neq.
\nearrow % Flecha noreste (relación).
\neg ¬ Negación lógica (común). Sinónimo: \lnot. A veces, en cambio, se usa para
negación: \sim.
\neq 6= No es igual (relación). Sinónimo: \ne.
\ni 3 Membresı́a reflejada épsilon; tiene el miembro (relación). Sinónimo: \owns.
Similar: es un miembro de \in.
\not 6 Sólido largo, o barra oblicua, que se usa para tachar un siguiente operador
(relación).
Muchos operadores negados están disponibles que no requieren \not, parti-
cularmente con el paquete amssymb. Por ejemplo, \notin es tipográficamente
preferible a \not\in.
\notin ∈
/ No es un elemento de (relación). Similar: no subconjunto de \nsubseteq.
\nu ν Letra griega minúscula (común).
\nwarrow - Flecha noroeste (relación).
\odot Punto dentro de un cı́rculo (binario). Similar: de tama~
no variable opera-
dor \bigodot.
H
\oint Integral de contorno, integral con cı́rculo en el medio (operador).
\Omega Ω letra griega mayúscula (común).
\omega ω Letra griega minúscula (común).
\ominus Signo menos, o guión, dentro de un cı́rculo (binario).
\oplus ⊕ Signo más dentro de un cı́rculo (binario). Similar: de tama~
no variable opera-
dor \bigoplus.
\oslash Solidus, o slash, dentro de un cı́rculo (binario).
\otimes ⊗ Signo de tiempo, o cruz, dentro de un cı́rculo (binario). Similar: operador de
tama~no variable \bigotimes.
\owns 3 épsilon de membresı́a reflejada; tiene el miembro (relación). Sinónimo: \ni.
Similar: es un miembro de \in.
\parallel
k Paralelo (relación). Sinónimo: \|.
Capı́tulo 16: Fórmulas math 157
\sqsubseteq
v Subconjunto cuadrado o sı́mbolo igual (binario). Similar: subconjunto o igual
a \subseteq.
\sqsupset
sı́mbolo de superconjunto cuadrado (relación). Similar: superconjunto \supset.
No disponible en TEX simple. En LATEX necesitas cargar el paquete amssymb.
\sqsupseteq
w Superconjunto cuadrado o sı́mbolo igual (binario). Similar: superconjunto o
igual \supseteq.
\star ? Estrella de cinco puntas, a veces utilizada como binario general pero a veces
reservado para la correlación cruzada (binario). Similar: los sinónimos asterisco *
y \ast, que son de seis puntas, y más a menudo aparecen como un superı́ndice
o subı́ndice, como con la estrella Kleene.
\subset ⊂ Subconjunto (ocasionalmente, está implı́cito en) (relación).
\subseteq
⊆ Subconjunto o igual a (relación).
\succ Viene después, tiene éxito (relación). Similar: es menos que >.
\succeq Tiene éxito o es igual a (relación). Similar: menos que o igual a \leq.
P
\sum Sumatoria (operador). Similar: capital griega sigma \Sigma.
\supset ⊃ Superconjunto (relación).
\supseteq
⊇ Superconjunto o igual a (relación).
√
\surd Sı́mbolo radical (común). El comando LATEX \sqrt{...} escribe la raı́z
cuadrada del argumento, con una barra que se extiende para cubrir el argumento.
\swarrow . Flecha que apunta al suroeste (relación).
\tau τ Letra griega minúscula (común).
\theta θ Letra griega minúscula (común). La forma variante es \vartheta ϑ.
\times × Signo de multiplicación de escuela primaria (binario). Ve también \cdot.
\to → Flecha de una sola lı́nea que apunta hacia la derecha (relación).
Sinónimo: \rightarrow.
\top > Arriba, elemento más grande de un conjunto parcialmente ordenado (común).
Consulta también \bot.
\triangle
4 Triángulo (común).
\triangleleft
/ Triángulo sin rellenar que apunta hacia la izquierda (binario). Simi-
lar: \lhd. Para el sı́mbolo de subgrupo normal que debe cargar amssymb y
usar \vartriangleleft (que es una relación y por lo tanto proporciona un
mejor espaciado).
Capı́tulo 16: Fórmulas math 160
\triangleright
. Triángulo sin rellenar que apunta a la derecha (binario). Para el sı́mbolo de
subgrupo normal, en su lugar, debe cargar amssymb y usar \vartriangleright
(que es una relación y ası́ da un mejor espaciado).
\unlhd Punta de flecha subrayada sin relleno que apunta hacia la izquierda, es decir,
triángulo, con una lı́nea debajo (binario). Para el sı́mbolo de subgrupo normal
carga amssymb y usa \vartrianglelefteq (que es una relación y por lo tanto
da mejor espaciado).
\unrhd Punta de flecha subrayada sin relleno que apunta hacia la derecha, es decir,
triángulo, con una lı́nea debajo (binario). Para el sı́mbolo de subgrupo normal
carga amssymb y usa \vartrianglerighteq (que es una relación y por lo tanto
da mejor espaciado).
\Uparrow ⇑ Flecha de doble lı́nea que apunta hacia arriba (relación). Similar: apuntando
hacia arriba de una sola lı́nea flecha \uparrow.
\uparrow ↑ Flecha de una sola lı́nea que apunta hacia arriba, diverge (relación). Similar:
doble lı́nea apuntando hacia arriba flecha \Uparrow.
\Updownarrow
m Flecha de doble lı́nea que apunta hacia arriba y hacia abajo (relación). Similar:
una sola lı́nea apuntando hacia arriba y hacia abajo arrow \updownarrow.
\updownarrow
l Flecha de una sola lı́nea que apunta hacia arriba y hacia abajo (relación).
Similar: doble lı́nea apuntando hacia arriba y hacia abajo arrow \Updownarrow.
\upharpoonright
arpón levantado, con púa en el lado derecho (relación). Sinónimo: \restriction.
No disponible en TEX simple. En LATEX necesitas cargar el paquete amssymb.
\uplus ] Unión multiconjunto, un sı́mbolo de unión con un sı́mbolo más en el me-
dio (binario). Similar: union \cup. Relacionado: operador de tama~ no varia-
ble \biguplus.
\Upsilon ϒ letra griega mayúscula (común).
\upsilon υ Letra griega minúscula (común).
\varepsilon
ε Epsilon de script en letra minúscula (común). Esto es ampliamente utilizado en
matemáticas que la forma épsilon semilunar no variante \epsilon . Relacionado:
establece membresı́a \in.
\vanothing
Sı́mbolo de conjunto vacı́o. Similar: \emptyset. Relacionado: \revemptyset.
No disponible en TEX simple. En LATEX necesitas cargar el paquete amssymb.
\varphi ϕ Variante de la letra griega minúscula (común). La forma no variante es \phi φ.
\varpi $ Variante de la letra griega minúscula (común). La forma no variante es \pi π.
\varrho % Variante de la letra griega minúscula (común). La forma no variante es \rho ρ.
Capı́tulo 16: Fórmulas math 161
\varsigma
ς Variante de la letra griega minúscula (común). La forma no variante es
\sigma σ.
\vartheta
ϑ Variante de la letra griega minúscula (común). La forma no variante es
\theta θ.
\vee ∨ Lógico o; una forma de v hacia abajo (binario). Relacionado: y lógico \wedge.
Similar: de tama~ no variable operator \bigvee.
\Vert k Doble barra vertical (común). Véase Sección 16.2.5 [Delimitadores], página 164,
sobre cómo usar el paquete mathtools para crear sı́mbolos de norma.
\vert | Barra vertical de una sola lı́nea (común). Para “tal que”, como en la definición
de un conjunto, usa \mid porque es una relación Véase Sección 16.2.5 [Delimi-
tadores], página 164, para saber cómo usar el paquete mathtools para crear
sı́mbolos de valor absoluto de tama~ no flexible.
Los siguientes sı́mbolos se usan con mayor frecuencia en texto sin formato, pero LATEX
proporciona versiones para usar en texto matemático.
\mathdollar
Signo de dólar en modo matemático: $.
\mathparagraph
Signo de párrafo (pilcrow) en modo matemático, ¶.
\mathsection
Signo de sección en modo math: §.
\mathsterling
Signo esterlina en modo matemático: £.
\mathunderscore
Guión bajo en modo matemático: .
Capı́tulo 16: Fórmulas math 162
16.2.1 Flechas
Estas son las flechas que vienen con LATEX estándar. Los paquetes latexsym y amsfonts
contienen muchos más.
Sı́mbolo Comando
⇓ \Downarrow
↓ \downarrow
←- \hookleftarrow
,→ \hookrightarrow
← \leftarrow
⇐ \Leftarrow
⇔ \Leftrightarrow
↔ \leftrightarrow
←− \longleftarrow
⇐= \Longleftarrow
←→ \longleftrightarrow
⇐⇒ \Longleftrightarrow
7−→ \longmapsto
=⇒ \Longrightarrow
−→ \longrightarrow
7 → \mapsto
% \nearrow
- \nwarrow
⇒ \Rightarrow
→ \rightarrow, o \to
& \searrow
. \swarrow
↑ \uparrow
⇑ \Uparrow
l \updownarrow
m \Updownarrow
Un ejemplo de la diferencia entre \to y \mapsto es: \( f\colon D\to C \) dado por \(
n\mapsto n^2 \).
Para diagramas conmutativos hay una serie de paquetes, incluyendo tikz-cd y amscd.
16.2.4 Caligráfico
Sinopsis:
\mathcal{letras-mayúsculas}
Utiliza un tipo de letra como el tipo script.
En este ejemplo, el identificador del gráfico se genera en letra cursiva.
Sea la gráfica \( \mathcal{G} \).
Si usa algo que no sea una letra mayúscula, entonces no obtienes un error, pero tampoco
obtienes una salida caligráfica matemática. Por ejemplo, \mathcal{g} genera un sı́mbolo de
llave de cierre.
16.2.5 Delimitadores
Los delimitadores son paréntesis, llaves u otros caracteres que se utilizan para marcar el
inicio y el final de las subfórmulas. Esta fórmula tiene tres conjuntos de paréntesis que
delimitan las tres subfórmulas.
(z-z_0)^2 = (x-x_0)^2 + (y-y_0)^2
No es necesario que los delimitadores coincidan, por lo que puedes ingresar \( [0,1) \).
Estos son los delimitadores comunes.:
Delimitador Comando Nombre
( ( Paréntesis izquierdo
) ) Paréntesis derecho
\} { o \lbrace Llave izquierda
\{ } o \rbrace Llave derecha
[ [ o \lbrack Corchete izquierdo
] ] o \rbrack Corchete derecho
b \lfloor Left floor bracket
c \rfloor Soporte de piso derecho
d \lceil Soporte superior izquierdo
e \rceil Soporte superior derecho
h \langle Paréntesis angular izquierdo
i \rangle Soporte angular derecho
/ / Barra o barra inclinada
\ \backslash Barra invertida o barra invertida
Capı́tulo 16: Fórmulas math 165
de lı́nea manuales y automáticos generados por LATEX. En este ejemplo, LATEX rompe la
ecuación para que la fórmula se ajuste a los márgenes.
Lorem ipsum dolor sit amet
\( (a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z) \)
Pero con \left y \right
Lorem ipsum dolor sit amet
\( \left(a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z\right) \)
LATEX no romperá la lı́nea, lo que hará que la fórmula se extienda al margen.
Porque \left ... \right hace un grupo, todas las reglas de agrupación usuales se
mantienen. Aquı́, el valor de \testlength establecido dentro de la ecuación se olvidará y la
salida es ‘1.2pt’.
\newlength{\testlength} \setlength{\testlength}{1.2pt}
\begin{equation}
\left( a+b=c \setlength{\testlength}{3.4pt} \right)
\the\testlength
\end{equation}
El par \left ... \right afecta el espaciado horizontal de la fórmula adjunta, de dos
maneras. La primera es que en \( \sin(x) = \sin\left(x\right) \) el que está después
del signo igual tiene más espacio alrededor del x. Eso es porque \left( ... \right) inserta
un nodo interno mientras que ( ... ) inserta un nodo de apertura. La segunda forma en
que el par afecta el espacio horizontal es que debido a que forman un grupo, la subfórmula
adjunta se escribirá en su forma de ancho natural, sin estirar ni encoger para que la lı́nea se
ajuste mejor.
TEX escala los delimitadores según la altura y la profundidad de la fórmula adjunta. Aquı́
L TEX aumenta los corchetes para extender la altura de la integral.
A
\begin{equation}
\left[ \int_{x=r_0}^{\infty} -G\frac{Mm}{r^2}\, dr \right]
\end{equation}
El tama~ no manual a menudo es mejor. Por ejemplo, aunque por debajo de la regla no
tiene profundidad, TEX creará delimitadores que se extienden muy por debajo de la regla.
\begin{equation}
\left( \rule{1pt}{1cm} \right)
\end{equation}
TEX puede elegir delimitadores que son demasiado peque~ nos, como en \( \left| |x|+|y|
\right| \). También puede elegir delimitadores demasiado grandes, como aquı́.
\begin{equation}
\left( \sum_{0\leq i<n} i^k \right)
\end{equation}
Un tercer caso incómodo es cuando una fórmula que se muestra durante mucho tiempo
está en más de una lı́nea y debe hacer coincidir los tama~ nos del delimitador de apertura y
cierre; no puedes usar \left en la primera lı́nea y \right en la última porque deben estar
emparejados.
Para cambiar manualmente el tama~ no de los delimitadores, Sección 16.2.5.2 [\bigl y \bigr
etc.], página 167.
Capı́tulo 16: Fórmulas math 167
\end{equation}
(muchos autores reemplazarı́an \frac con el comando \tfrac del paquete amsmath), y como
con esta barra inclinada más grande.
\begin{equation}
\lim_{n\to\infty}\pi(n) \big/ (n/\log n) = 1
\end{equation}
A diferencia del par \left...\right (véase Sección 16.2.5.1 [\left y \right], página 165),
los comandos aquı́ con ‘l’ o ‘r’ no forman un grupo. Estrictamente hablando, no es necesario
que coincidan para que puedas escribir algo como esto.
\begin{equation}
\Biggl[ \pi/6 ]
\end{equation}
Los comandos con ‘m’ son para relaciones, que están en medio de fórmulas, como aquı́.
\begin{equation}
\biggl\{ a\in B \biggm| a=\sum_{0\leq i<n}3i^2+4 \biggr\}
\end{equation}
...
16.6.1 \smash
Sinopsis:
\smash{subformula}
Escribe subformula como si su altura y profundidad fuera cero.
En este ejemplo, la exponencial es tan alta que sin el comando \smash LATEX separarı́a
su lı́nea de la lı́nea por encima de él, y el espaciado desigual de las lı́neas puede resultar
antiestético.
Para calcular la tetración $\smash{2^{2^{2^2}}}$,
evaluar de arriba hacia abajo, como $2^{2^4}=2^{16}=65536$.
(Debido al \smash, la expresión impresa se podrı́a encontrar con la lı́nea anterior, por
lo que es posible que desees esperar hasta la versión final del documento para hacer tales
ajustes).
Esto representa el efecto de \smash usando \fbox para rodear el cuadro que LATEX pondrá
en la lı́nea. El comando \blackbar crea una barra que se extiende desde 10 puntos debajo
la lı́nea base a 20 puntos arriba.
\newcommand{\blackbar}{\rule[-10pt]{5pt}{30pt}}
\fbox{\blackbar}
\fbox{\smash{\blackbar}}
El primer cuadro que coloca LATEX tiene una altura de 20 puntos y 10 puntos de
profundidad. Pero el segundo cuadro es tratado por LATEX como teniendo cero altura y cero
profundidad, a pesar de que la tinta impresa en la página aún se extiende muy por encima y
por debajo de la lı́nea.
El comando \smash aparece a menudo en matemáticas para ajustar el tama~ no de un
elemento que rodea una subfórmula. Aquı́ el primer radical se extiende por debajo de la
lı́nea base mientras que el segundo se encuentra justo en la lı́nea base.
\begin{equation}
\sqrt{\sum_{0\leq k< n} f(k)}
\sqrt{\vphantom{\sum}\smash{\sum_{0\leq k< n}} f(k)}
\end{equation}
Ten en cuenta el uso de \\vphantom para dar al comando \sqrt un argumento con la
altura de \sum (véase Sección 16.6.2 [\phantom - \vphantom y \hphantom], página 175).
Capı́tulo 16: Fórmulas math 175
Si bien se usan con mayor frecuencia en matemáticas, estos tres pueden aparecer en otros
contextos. Sin embargo, no hacen que LATEX cambie a modo horizontal. Entonces, si uno de
estos comienza un párrafo, lo debes anteponer con \leavevmode.
xxx xxx xxx
(véase Sección 14.5 [\settoheight], página 141), y \settowidth (véase Sección 14.6 [\set-
towidth], página 142). Además, el paquete mathtools tiene muchos comandos que ofrecen
control detallado sobre el espaciado.
Los tres comandos producen una caja ordinaria, sin ningún estado de matemáticas
especial. Entonces, para hacer algo como adjuntar un superı́ndice, deberı́as darle ese estado,
por ejemplo con el comando \operatorname del paquete amsmath.
Si bien se usan con mayor frecuencia en matemáticas, estos tres pueden aparecer en otros
contextos. Sin embargo, no hacen que LATEX cambie a modo horizontal. Entonces, si uno de
estos comienza un párrafo, lo debes anteponer con \leavevmode.
16.6.3 \mathstrut
Sinopsis:
\mathstrut
El análogo de \strut para matemáticas. Véase Sección 19.13 [\strut], página 195.
La entrada $\sqrt{x} + \sqrt{x^i}$ da salida donde el segundo radical es más alto
que el primero. Para agregar espacio vertical adicional sin ningún espacio horizontal, para
que los dos tengan la misma altura, usa $\sqrt{x\mathstrut} + \sqrt{x^i\mathstrut}$.
El comando \mathstrut agrega la altura vertical de un paréntesis de apertura, (, pero
sin espacio horizontal. Se define como \vphantom{(}, ası́ que Sección 16.6.2 [\phantom
- \vphantom y \hphantom], página 175, para más. Una ventaja sobre \strut es que
\mathstrut no agrega profundidad, que suele ser lo correcto para las fórmulas. Usar la
altura de un paréntesis de apertura es solo una convención; para un control completo sobre
la cantidad de espacio, usa \rule con un ancho cero. Véase Sección 23.8 [\rule], página 233.
Pero el paquete amsmath ampliamente utilizado define \colon para su uso en la definición
de funciones f\colon D\to C. Ası́ que si quieres el carácter de dos puntos como puntuación
y entonces usa \mathpunct{:}.
16.8.2 \*
Sinopsis:
\*
Un sı́mbolo de multiplicación que permite un salto de lı́nea. Si hay un salto entonces
L TEX pone un sı́mbolo \times, ×, antes de ese salto.
A
En \( A_1\* A_2\* A_3\* A_4 \), si no hay salto de lı́nea, entonces LATEX los muestra
como si fuera \( A_1 A_2 A_3 A_4 \). Si ocurre un salto de lı́nea, por ejemplo, entre los dos
del medio, entonces LATEX lo establece como \( A_1 A_2 \times \), seguido por el salto,
seguido de \( A_3 A_4 \).
16.8.3 \frac
Sinopsis:
\frac{numerator}{denominator}
Produce la fracción. Usado como: \begin{displaymath} \frac{1}{\sqrt{2\pi\sigma}}
\end{displaymath}. En el modo math en lı́nea sale peque~ no; ve la explicación de
\displaystyle (véase Capı́tulo 16 [Fórmulas math], página 149).
16.8.4 \sqrt
Sinopsis, una de:
\sqrt{arg}
\sqrt[root-number]{arg}
La raı́z cuadrada, u opcionalmente otras raı́ces, de arg. El argumento opcional root-
number da la raı́z, es decir, ingresa la raı́z cúbica de x+y como \sqrt[3]{x+y}. Sale ası́:
√
3
x + y. El tama~ no del radical crece con el de arg (conforme la altura del radical crece,
el ángulo en la parte más a la izquierda se hace más pronunciado, hasta que arg es lo
suficientemente alto, es vertical).
LATEX tiene un sı́mbolo \surd separado para hacer una raı́z cuadrada sin arg (véase
Sección 16.2 [Sı́mbolos matemáticos], página 151).
16.8.5 \stackrel
Sinopsis:
\stackrel{text}{relation}
Pon text encima de relation. Para poner un nombre de función encima de una flecha
f
ingresa \stackrel{f}{\longrightarrow}. El resultado se ve ası́: −→.
179
17 Modos
A medida que LATEX procesa tu documento, en cualquier momento se encuentra en uno de
seis modos. Se dividen en tres categorı́as de dos cada una, los modos horizontales, los modos
matemáticos y los modos verticales. Algunos comandos solo funcionan en un modo u otro
(en particular, muchos comandos solo funcionan en uno de los modos matemáticos), y los
mensajes de error se referirán a estos.
• Modo párrafo (en TEX simple esto se llama modo horizontal) es en lo que se encuentra
LATEX cuando procesa texto normal. Se rompe el texto de entrada en lı́neas y encuentra
las posiciones de los saltos de lı́nea, de modo que en modo vertical se pueden hacer
saltos de página. Este es el modo LATEX, es en la mayor parte del tiempo.
modo LR (para el modo de izquierda a derecha; en TEX simple esto se llama modo
horizontal restringido) está en vigor cuando se inicia LATEX hace una caja con un
comando \mbox. Como en el modo de párrafo, la salida de LATEX es una cadena de
palabras con espacios entre ellas. A diferencia de en modo párrafo, en modo LR LATEX
nunca comienza una nueva lı́nea, simplemente continúa de izquierda a derecha. (Aunque
LATEX no se quejará que la caja LR es demasiado larga, cuando está terminada y luego
intenta poner esa caja en una lı́nea, bien se podrı́a quejar de que la caja LR terminada
no cabe allı́).
• modo matemático es cuando LATEX está generando una fórmula matemática en lı́nea.
Muestra modo math es cuando LATEX está generando una fórmula matemática. (Las
fórmulas mostradas difieren un poco de las fórmulas en lı́nea. Un ejemplo es que la
ubicación del subı́ndice en \int difiere en las dos situaciones).
• Modo vertical es cuando LATEX está construyendo la lista de lı́neas y otro material
haciendo la página de salida, que comprende la inserción de saltos de página. Este es el
modo LATEX, es cuando se inicia un documento.
Modo vertical interno está en efecto cuando LATEX comienza a hacer una \vbox. No
tiene saltos de página, y como tal es el análogo vertical del modo LR.
Por ejemplo, si comienzas un artı́culo de LATEX con ‘Let \( x \) ...’ entonces estos son los
modos: primero LATEX inicia cada documento en modo vertical, entonces lee la ‘L’ y cambia
al modo párrafo, entonces el siguiente cambio ocurre en la ‘\(’ donde LATEX cambia al modo
matemático, y luego, cuando sale de la fórmula, parece volver al modo de párrafo.
El modo párrafo tiene dos subcasos. Si usas un comando \parbox o un minipage entonces
LATEX se pone en modo párrafo. Pero no pondré un salto de página aquı́. Dentro de una de
estas cajas, llamada parbox, LATEX está en modo de párrafo interior. Es la situación mas
usual, donde puedes poner saltos de página, es modo de párrafo externo (véase Capı́tulo 10
[Salto de página], página 111).
17.1 \ensuremath
Sinopsis:
\ensuremath{formula}
Se asegura de que formula esté escrito en modo matemático.
Capı́tulo 17: Modos 180
Por ejemplo, puedes redefinir comandos que normalmente solo se pueden usar en modo
matemático, para que se puedan usar tanto en matemáticas como en texto sin formato.
\newcommand{\dx}{\ensuremath{dx}}
En $\int f(x)\, \dx$, el \dx{} es un infinitesimal.
Precaución: el comando \ensuremath es útil pero no una panacea.
\newcommand{\alf}{\ensuremath{\alpha}}
18 Estilos de página
El estilo de una página determina dónde coloca LATEX los componentes de esa página, como
encabezados y pies de página, y el cuerpo del texto. Este incluye páginas en la parte principal
del documento pero también incluye páginas especiales como la portada de un libro, una
página de un ı́ndice o la primera página de un artı́culo.
El paquete fancyhdr se usa comúnmente para construir estilos de página. Ve su docu-
mentación.
18.1 \maketitle
Sinopsis:
\maketitle
Genera un tı́tulo. En las clases estándar el tı́tulo aparece en una página separada, excepto
en la clase article donde está en la parte superior de la primera página. (Véase Sección 3.1
[Opciones de la clase documento], página 7, para obtener información sobre la opción
titlepage de la clase documento).
Este ejemplo muestra que \maketitle aparece en su lugar habitual, inmediatamente
después de \begin{document}.
\documentclass{article} \title{Construir un reactor nuclear usando
solo cocos} \author{Jonas Grumby\thanks{% Con el apoyo de una beca
Ginger de la Roy Hinkley Society.} \\ Capitán, \textit{Minnow} \and
Willy Gilligan\thanks{% Gracias a la fundación Mary Ann Summers ya
Thurston y Lovey Howell.} \\ Compa~ nero, \textit{Minnow} }
\date{1964-Sep-26} \begin{document} \maketitle Solo siéntate y
escucharás un cuento, el cuento de un fatı́dico viaje. Que partió
desde este puerto tropical, a bordo de este diminuto barco. El
compa~nero era un navegante poderoso, el Capitán valiente y seguro. Un
conjunto de cinco pasajeros navega ese dı́a para un recorrido de tres
horas. Un recorrido de tres horas.
...
Le dices a LATEX la información utilizada para producir el tı́tulo haciendo las siguientes
declaraciones. Estos deben venir antes de \maketitle, ya sea en el preámbulo o en el cuerpo
del documento.
\author{name1 \and name2 \and ...}
Requerido. Declara el autor o autores del documento. El argumento es un lista
de autores separados por los comandos \and. Para separar lı́neas dentro de
la entrada de un solo autor, por ejemplo, para dar la institución o dirección,
usa una barra invertida doble, \\. Si omites la declaración \author entonces
obtienes ‘Advertencia LaTeX: Sin \autor dado’.
\date{text}
Opcional. Declara text como la fecha del documento. El text no necesita estar
en un formato de fecha; puede ser cualquier texto. Si omites \date entonces
LATEX usa la fecha actual (véase Sección 23.9 [\today], página 233). Para no
tener fecha, utiliza \date{}.
Capı́tulo 18: Estilos de página 182
\thanks{text}
Opcional. Produce una nota al pie. Lo puedes usar en la información del autor
para agradecimientos como se ilustra arriba, pero también lo puedes usar en el
tı́tulo, o cualquier lugar donde tenga sentido una marca de nota al pie. Puede
ser cualquier texto en absoluto para que lo puedas usar para cualquier propósito,
como imprimir una dirección de correo electrónico.
\title{text}
Requerido. Declara text como tı́tulo del documento. Obtiene un salto de lı́nea
dentro de text con una barra invertida doble, \\. Si omites la declaración
\title, entonces el comando \maketitle produce el ‘Error de LaTeX: No se
proporcionó \title’.
Para crear tu propia página de tı́tulo, Sección 8.26 [titlepage], página 102. También
lo puedes crear como único o lo puedes incluir como parte de un comando \maketitle
renovado. (Muchos editores proporcionarán una clase para usar en lugar de article que
formatea el tı́tulo según sus requisitos de la casa).
18.2 \pagenumbering
Sinopsis:
\pagenumbering{number-style}
Especifica el estilo de los números de página y restablece el número de página. El estilo
de numeración se refleja en la página, y también en la tabla de contenido y otras referencias
de página. Esta declaración tiene alcance global por lo que su efecto no se detiene por un
final de grupo como una llave de cierre o un fin de entorno.
En este ejemplo, antes de la sección ‘Principal’ las páginas están numeradas ‘a’, etc.
Comenzando en la página que contiene la llamada a \pagenumbering en esa sección, las
páginas están numeradas ‘1’, etc.
\begin{document}\pagenumbering{alph}
...
\section{Main}\pagenumbering{arabic}
...
El argumento number-style es uno de los siguientes (también Sección 13.1 [\alph \Alph
\arabic \roman \Roman \fnsymbol], página 134).
arabic número arábigo: 1, 2, . . .
roman Números romanos en minúsculas: i, ii, . . .
Roman Números romanos en mayúsculas: I, II, . . .
alph minúsculas: a, b, . . . Si tienes más de 26 páginas, entonces obtén ‘Error de
LaTeX: Contador demasiado grande’.
Alph letras mayúsculas: A, B, . . . Si tiene más de 26 páginas, entonces obtienes
‘Error de LaTeX: Contador demasiado grande’.
gobble LATEX no genera un número de página, aunque se reinicia. Las referencias a
esa página también están en blanco. (Esto no lo hace trabajar con el popular
Capı́tulo 18: Estilos de página 183
18.3 \pagestyle
Sinopsis:
\pagestyle{style}
Declaración que especifica cómo se componen los encabezados y pies de página, desde la
página actual en adelante.
Una explicación con un ejemplo está abajo. Ten en cuenta primero que el paquete
fancyhdr es ahora la forma estándar de manipular encabezados y pies de página. Nuevos
documentos que necesitan hacer algo diferente a una de las opciones estándar a continuación
deben usar este paquete. Ve su documentación en CTAN.
Valores para style:
plain El encabezado está vacı́o. El pie de página contiene solo un número de página,
centrado.
empty Tanto el encabezado como el pie de página están vacı́os.
headings Coloca encabezados y pies de página continuos en cada página. El estilo del
documento especifica lo que va allı́; ve la explicación a continuación.
myheadings
Encabezados personalizados, especificados a través de los comandos \markboth
o \markright.
Un poco de discusión sobre la motivación del mecanismo de LATEX te ayudará a trabajar
con las opciones headings o myheadings. La fuente del documento a continuación produce
un artı́culo, a dos caras, con el estilo de página headings. En las páginas de la izquierda de
este documento, LATEX quiere (además del número de página) el tı́tulo de la sección actual.
En sus páginas de la derecha LATEX quiere el tı́tulo de la subsección actual. Cuando crea
una página, LATEX obtiene esta información del comandos \leftmark y \rightmark. Ası́
que depende de \section y \subsection para almacenar esa información allı́.
\documentclass[twoside]{article}
\pagestyle{headings}
\begin{document}
... \section{Section 1} ... \subsection{Subsección 1.1} ...
\section{Sección 2}
...
\subsection{Subsección 2.1}
...
Capı́tulo 18: Estilos de página 184
\subsection{Subsección 2.2}
...
Supongamos que la segunda sección cae en una página de la izquierda. Aunque cuando la
página comienza en la primera sección, LATEX pondrá ‘Sección 2’ en el encabezado de la
página izquierda. En cuanto al encabezado derecho, si ninguna subsección comienza antes
del final de la página derecha, entonces LATEX deja en blanco el encabezado de la derecha.
Si una subsección aparece antes de terminar la página derecha entonces hay dos casos. Si
al menos una subsección comienza en la página de la derecha, entonces LATEX colocará el
encabezado derecho en el tı́tulo de la primera subsección que comienza en esa página derecha.
Si al menos uno de 2.1, 2.2, . . . , comienza en la página izquierda pero ninguno empieza a la
derecha entonces LATEX pone en el encabezado de la derecha el tı́tulo del último inciso por
comenzar, es decir, el que esté vigente durante la página de la derecha.
Para lograr esto, en un artı́culo de dos caras, LATEX hace que \sectionemita un comando
\markboth, configurando \leftmark a ‘Section 2’ y configura \rightmark en un conteni-
do vacı́o. Y, LATEX hace que \subsection emita un comando \markright, configurando
\rightmark a ‘Subsección 2.1’, etc.
Aquı́ están las descripciones de \markboth y \markright:
\markboth{left-head}{right-head}
Establece la información de rumbo tanto a la derecha como a la izquierda para
un estilo de página de headings o myheadings. Una página de la izquierda el
encabezado left-head es generado por el último comando \markboth antes del
final de la página. Un encabezado de página a la derecha right-head es generado
por el primer \markboth o \markright que viene en la página si hay uno, de lo
contrario por el último que vino antes de esa página.
\markright{right-head}
Establece el encabezado de la página de la derecha, dejando el izquierdo sin
cambios.
18.4 \thispagestyle
Sinopsis:
\thispagestyle{style}
Funciona de la misma manera que el \pagestyle (véase Sección 18.3 [\pagestyle],
página 183), excepto que cambia a style solo para la página actual. Esta declaración
tiene alcance global, por lo que su efecto no está delimitado por llaves o entornos.
A menudo, la primera página de un capı́tulo o sección tiene un estilo diferente. Por
ejemplo, este documento de libro LATEX tiene la primera página del primer capı́tulo en estilo
plain, como es el predeterminado (véase Capı́tulo 18 [Estilos de página], página 181).
\documentclass{book}
\pagestyle{headings}
\begin{document}
\chapter{Primer capı́tulo}
...
\chapter{Segundo capı́tulo}\thispagestyle{empty}
...
Capı́tulo 18: Estilos de página 185
El estilo plain tiene un número de página, centrado en el pie de página. Para hacer que la
página esté completamente vacı́a, el comando \thispagestyle{empty} sigue inmediatamente
al segundo \chapter.
186
19 Espacios
LATEX tiene muchas formas de producir espacios en blanco o espacios llenos. Algunos de
estos se adaptan mejor al texto matemático; para estos Sección 16.6 [Espaciado en modo
matemático], página 173.
19.2 \hspace
Sinopsis, una de:
\hspace{length}
\hspace*{length}
Inserta la cantidad length de espacio horizontal. length puede ser positiva, negativa
o cero; agregar una cantidad negativa de espacio es como retroceder. Es una longitud
elástica, es decir, puede contener un componente plus o minus, o ambas (véase Capı́tulo 14
[Longitudes], página 138). Debido a que el espacio se puede estirar y contraer, a veces se le
llama pegamento.
Esto hace una lı́nea con ‘Name:’ a una pulgada del margen derecho.
\noindent\makebox[\linewidth][r]{Name:\hspace{1in}}
La forma * inserta un espacio horizontal que no se puede descartar. Más precisamente,
cuando TEX divide un párrafo en lı́neas blancas el espacio—pegamentos y kerns—que vienen
en un salto de lı́nea se descartan. La forma-* evita eso (técnicamente, agrega un elemento
invisible no descartable delante del espacio).
En este ejemplo
\parbox{0.8\linewidth}{%
Completa cada espacio en blanco: Cuatro \hspace*{1in} y hace
Capı́tulo 19: Espacios 187
siete a~
nos nuestros padres produjeron en este continente, un nuevo
\hspace*{1in}, concebido en \hspace*{1in}, y dedicado a la
propuesta que todos los hombres son creados \hspace*{1in}.}
el espacio en blanco de 1 pulgada que sigue a ‘concebido en’ cae al principio de una linea.
Si borras el * entonces LATEX descarta el espacio en blanco.
Aquı́, el \hspace separa los tres gráficos.
\begin{center}
\includegraphics{lion.png}% el espacio extra queda fuera del
comentario
\hspace{1cm minus 0.25cm}\includegraphics{tiger.png}%
\hspace{1cm minus 0.25cm}\includegraphics{bear.png}
\end{center}
Porque el argumento de cada \hspace tiene minus 0.25cm, cada uno se puede encoger un
poco si las tres figuras son demasiado anchas. Pero cada espacio no se reducirá más de
0.25 cm (véase Capı́tulo 14 [Longitudes], página 138).
19.3 \hfill
Sinopsis:
\hfill
Produce una longitud elástica que no tenga espacio natural pero que se pueda estirar
horizontalmente tanto como sea necesario (véase Capı́tulo 14 [Longitudes], página 138).
Esto crea un párrafo de una lı́nea con ‘Name:’ en el lado izquierdo de la página y ‘Prueba
uno’ a la derecha.
\noindent Name:\hfill Prueba uno
El comando \hfill es equivalente a \hspace{\fill} y por lo que el espacio se puede
descartar en los saltos de lı́nea. Para evitar eso, en su lugar usa \hspace*{\fill} (véase
Sección 19.2 [\hspace], página 186).
Aquı́ las gráficas están espaciadas uniformemente en el centro de la figura.
\newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}
...
\begin{figure}
\hspace*{\fill}%
\vcenteredhbox{\includegraphics{graph0.png}}%
\hfill\vcenteredhbox{\includegraphics{graph1.png}}%
\hspace*{\fill}%
\caption{Comparación de dos gráficos} \label{fig:twographs}
\end{figure}
Ten en cuenta los \hspace* donde el espacio se podrı́a eliminar.
19.4 \hss
Sinopsis:
\hss
Capı́tulo 19: Espacios 188
19.5 \spacefactor
Sinopsis:
\spacefactor=integer
Influye en el comportamiento de estiramiento y contracción del pegamento de LATEX. La
mayorı́a a nivel de usuario los documentos no utilizan este comando.
Mientras LATEX está estilizando el material, puedes estirar o encoger los espacios entre
palabras. (Este espacio no es un carácter; se llama el pegamento entre palabras; véase
Sección 19.2 [\hspace], página 186). El comando \spacefactor (de TEX simple) te permite,
por ejemplo, hacer que el espacio después de un punto se extienda más que el espacio después
de una letra de final de palabra.
Después de que LATEX coloca cada carácter, regla u otro cuadro, establece un parámetro
llamado factor de espacio. Si lo siguiente en la entrada es un espacio, entonces este parámetro
afecta cuánto se puede estirar o encoger. Un factor de espacio que es mayor que el valor
normal significa que el pegamento se puede estirar más y encoger menos. Normalmente, el
espacio factor es 1000. Este valor está en efecto después de la mayorı́a de los caracteres, y
cualquier cuadro que no sea de caracteres o fórmula matemática. Pero es 3000 después de un
punto, signo de exclamación o signo de interrogación, es 2000 después de dos puntos, 1500
después un punto y coma, 1250 después de una coma y 0 después de un paréntesis derecho o
paréntesis, comillas dobles de cierre o comillas simples. Finalmente, es 999 después de una
letra mayúscula.
Si el factor espacio f es 1000, entonces el espacio de pegamento será el valor del espacio
normal de la letra (para Computer Modern Roman 10 puntos esto es 3.3333 puntos). De
lo contrario, si el factor de espacio f es mayor de 2000, entonces TEX agrega el valor de
espacio extra de la letra (para Computer Modern Roman 10 point esto es 1.11111 points), y
entonces la letra el valor de estiramiento normal se multiplica por f /1000 y el valor normal
el valor de contracción se multiplica por 1000/f (para Computer Modern Roman 10 puntos,
estos son 1.66666 y 1.11111 puntos).
Por ejemplo, considera el punto que termina El mejor amigo de un hombre es su perro.
Después de eso, TEX pone un espacio extra fijo, y también permite que el pegamento para
estirar 3 veces más y encoger 1/3 más, que el pegamento después de amigo, que no termina
en un punto.
Las reglas para los factores espaciales son aún más complejas porque juegan papeles
adicionales. En la práctica, hay dos consecuencias. Primero, si un punto u otro signo de
Capı́tulo 19: Espacios 189
puntuación está seguido por un paréntesis derecho o corchete, o comillas simples o dobles a
la derecha, entonces el efecto de espaciado de ese perı́odo lleva a través de esos caracteres (es
decir, el pegamento siguiente habrá aumentado el estiramiento y la contracción). Segundo, si
la puntuación viene después de una letra mayúscula, entonces su efecto no está en su lugar
por lo que obtienes un espacio ordinario. Este segundo caso también afecta a las abreviaturas
que no terminen en mayúscula (véase Sección 19.5.1 [\@], página 189).
Solo puedes usar \spacefactor en modo párrafo o modo LR (véase Capı́tulo 17 [Modos],
página 179). Puedes ver el valor actual con \the\spacefactor o \showthe\spacefactor.
(Comentario, no realmente relacionado con \spacefactor: si obtienes errores como
‘No puedes usar `\spacefactor' en modo vertical’, o ‘No puedes usar `\spacefactor'
en modo matemático.’, o ‘Impropio \spacefactor’ entonces probablemente hayas inten-
tado redefinir un comando interno. Véase Sección 12.3 [\makeatletter y \makeatother],
página 122).
19.5.1 \@
Sinopsis:
capital-letter\@.
Trata un punto como final de oración, donde LATEX de lo contrario pensarı́a que es parte
de una abreviatura. LATEX piensa que un punto termina una abreviatura si el punto va
después de una letra mayúscula, y en caso contrario piensa que el punto termina la oración.
De manera predeterminada, al justificar una lı́nea LATEX ajusta el espacio después de un
punto final de oración (o un signo de pregunta, de exclamación, coma o dos puntos) más de
lo que ajusta el espacio entre palabras (véase Sección 19.5 [\spacefactor], página 188).
Este ejemplo muestra los dos casos para recordar.
Las canciones \textit{Guitarra roja}, etc.\ son de Loudon
Wainwright~III\@.
El segundo punto termina la oración, a pesar de que está precedido por una mayúscula.
Le decimos a LATEX que termina la oración poniendo \@ antes. El primer punto termina la
abreviatura ‘etc.’ pero no la oración. El espacio de barra invertida, \ , produce un espacio
en la mitad de la oración.
Entonces: si tienes una letra mayúscula seguida de un punto que termina la oración,
entonces coloca \@ antes del punto. Esto se mantiene incluso si hay un paréntesis o corchete
derecho intermedio, o derecho simple o comillas dobles, porque el efecto de espaciado de ese
perı́odo continúa esos caracteres. Por ejemplo, este
Usa la \textit{Guı́a de Prácticas de Instrucción}, (un libro de la
MAA)\@.
tendrá el espaciado correcto entre oraciones después del punto.
El comando \@ es solo para un modo de texto. Si lo usas fuera de un modo de texto,
entonces obtienes ‘No puedes usar `\spacefactor' en modo vertical’ (véase Capı́tulo 17
[Modos], página 179).
Comentario: el caso inverso es un punto que termina una abreviatura cuya última letra
no es una letra mayúscula, y esa abreviatura no es la última palabra en la oración. Para ese
caso sigue el punto con una barra invertida, (\ ), o una tie, (~), o \@. Algunos ejemplos son
Nat.\ Acad.\ Science y Mr.~Bean, y (manure, etc.\@) a la venta (nótese en la última
que la \@ viene antes del paréntesis de cierre).
Capı́tulo 19: Espacios 190
19.5.3 \normalsfcodes
Sinopsis:
\normalsfcodes
Restablece los factores de espacio de LATEX a los valores predeterminados (véase Sec-
ción 19.5 [\spacefactor], página 188).
19.7 ~
Sinopsis:
before~after
El carácter tie, ~, genera un espacio entre before y after en el que la lı́nea no se romperá.
De manera predeterminada el espacio en blanco tiene una longitud de 3.33333 pt más
1.66666 pt menos 1.11111 pt (véase Capı́tulo 14 [Longitudes], página 138).
Ten en cuenta que la palabra ‘tie’ tiene este significado en la comunidad TEX/Texinfo;
esto difiere del término tipográfico “tie”, que es un diacrı́tico en forma de arco, llamado
acento de “lazo-después” en El libro TEX.
Aquı́ LATEX no romperá la lı́nea entre las dos últimas palabras:
Gracias al Prof.~Lerman.
Además, a pesar del punto, LATEX no usa el espaciado al final de la oración (véase Sec-
ción 19.5.1 [\@], página 189).
Los lazos evitan la separación de cosas al final de la lı́nea donde eso podrı́a causar
confusión. También todavı́a permiten la separación silábica (de cualquiera de las palabras
ligadas), por lo que generalmente son preferibles a poner palabras consecutivas en un \mbox
(véase Sección 20.1 [\mbox y \makebox], página 200).
También son cuestión de gusto, a veces alarmantemente dogmáticos, entre los lectores.
Sin embargo, aquı́ hay algunos modelos de uso, muchos de ellos de El libro de TEX.
• Entre una etiqueta de enumerador y un número, como en las referencias: Capı́tulo~12,
o Teorema~\ref{th:Wilsons}, o Figura~\ref{fig:KGraph}.
• Cuando los casos se enumeran en lı́nea: (b)~Muestra que $f(x)$ es (1)~continuo,
y (2)~acotado.
• Entre un número y su unidad: $745.7.8$~watts (El paquete siunitx tiene una función
especial para esto) o 144~eggs. Esto incluye entre un número de mes y dı́a en una
Capı́tulo 19: Espacios 192
19.9 \/
Sinopsis:
before-character\/after-character
Inserta una corrección en cursiva, un peque~
no espacio definido por el dise~
nador de letra
para cada carácter (posiblemente cero), para evitar el carácter chocando con lo que sigue.
Cuando usas \/, LATEX toma la corrección del archivo métrico de la fuente, la escala por
Capı́tulo 19: Espacios 193
cualquier escala que se ha aplicado a la fuente, y luego inserta esa cantidad de espacio
horizontal.
Aquı́, si no fuera por la \/, el before-character cursiva f golpearı́a el after-character
roman H
\newcommand{\companylogo}{{\it f}\/H}
porque la letra cursiva f se inclina mucho hacia la derecha.
Si after-character es un punto o una coma, no insertes una corrección en cursiva ya que
esos sı́mbolos de puntuación son tan bajos para la lı́nea base ya. Sin embargo, con punto y
coma o dos puntos, ası́ como con letras normales, la corrección en cursiva puede ayudar. Se
usa normalmente entre un cambio de fuentes cursivas o inclinadas a una fuente vertical.
Cuando usas comandos como \emph y \textit y \textsl para cambiar las fuentes, LATEX
inserta automáticamente la corrección en cursiva cuando sea necesario (véase Sección 4.2
[Estilos de tipos de letra], página 23). Sin embargo, declaraciones como \em e \itshape y
\slshape no inserta automáticamente correcciones en cursiva.
Los caracteres verticales también pueden tener una corrección en cursiva. Un ejemplo
donde se necesita es el nombre pdf\/\TeX. Sin embargo, la mayorı́a de los caracteres
verticales tienen una corrección de cursiva cero. Algunos creadores de fuentes no incluyen
valores de corrección de cursiva ni siquiera para fuentes en cursiva.
Técnicamente, LATEX usa otro valor especı́fico de fuente, el llamado parámetro inclinado
(es decir, \fontdimen1), para determinar si posiblemente insertar una corrección en cursiva,
en lugar de vincular la acción a comandos de fuente particulares.
No existe el concepto de corrección de cursiva en el modo matemático; el espaciado
matemático está hecho de una manera diferente.
que cambia el grosor predeterminado de 0.4 pt a 1 pt. Del mismo modo, ajusta el espacio
entre puntos como con
\renewcommand{\dotfill}{%
\leavevmode\cleaders\hbox to 1.00em{\hss .\hss }\hfill\kern0pt }
que cambia la longitud predeterminada de 0.33 em a 1.00 em.
Este ejemplo produce una lı́nea para una firma.
\begin{minipage}{4cm}
\centering
\hrulefill\\
Firmado
\end{minipage}
La lı́nea mide 4 cm de largo.
\bigskip
Los comandos \bigbreak, \medbreak y \smallbreak son similares pero también sugieren
a LATEX que este es un buen lugar para poner un salto de página (véase Sección 19.12
[\bigbreak - \medbreak y \smallbreak], página 195.
19.13 \strut
Sinopsis:
\strut
Asegúrate de que la lı́nea actual tenga una altura de al menos 0.7\baselineskip y
profundidad al menos de 0.3\baselineskip. Esencialmente, LATEX inserta en la lı́nea
un rectángulo de ancho cero, \rule[-0.3\baselineskip]{0pt}{\baselineskip} (véase
Sección 23.8 [\rule], página 233). El \baselineskip cambia con la fuente o tama~ no de
fuente actual.
En este ejemplo, \strut mantiene la caja dentro del marco de tener altura cero.
\setlength{\fboxsep}{0pt}\framebox[2in]{\strut}
Este ejemplo tiene cuatro listas. En el primero hay una brecha mucho mayor. entre los
elementos 2 y 3 que entre los elementos 1 y 2. La segunda lista corrige eso con un \strut al
final de su primer elemento de la segunda lı́nea.
\setlength{\fboxsep}{0pt}
\noindent\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
\item \parbox[t]{15pt}{test \\ test}
\item test
\item test
\end{enumerate}
\end{minipage}%
Capı́tulo 19: Espacios 196
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
\item \parbox[t]{15pt}{test \\ test\strut}
\item test
\item test
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
\item \fbox{\parbox[t]{15pt}{test \\ test}}
\item \fbox{test}
\item \fbox{test}
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
\item \fbox{\parbox[t]{15pt}{test \\ test\strut}}
\item \fbox{test}
\item \fbox{test}
\end{enumerate}
\end{minipage}%
Las dos listas finales usan \fbox para mostrar lo que está sucediendo. El primer elemento
\parbox de la tercera lista va solo al final de su segundo ‘test’, que sucede que no tiene
ningún carácter que descender por debajo de la lı́nea base. La cuarta lista agrega el puntal
que da el espacio adicional necesario debajo de la lı́nea base.
El comando \strut suele ser útil en gráficos, como en TikZ o Asymptote. Por ejemplo,
puedes tener un comando como \graphnode{nombre-nodo} que se ajusta a un cı́rculo
alrededor de nombre-nodo. Sin embargo, a menos que tengas cuidado con el nombre-nodo
‘x’ y ‘y’ producirán cı́rculos de diferentes diámetros porque los caracteres son de diferentes
tama~nos. Un \graphnode cuidadoso podrı́a insertar \strut, entonces nombre-nodo y luego
dibujar el cı́rculo.
El enfoque general de usar un \rule ancho cero es útil en muchas circunstancias. En esta
tabla, la regla de ancho cero mantiene la parte superior de la primera integral de golpear el
\hline. Del mismo modo, la segunda regla evita que la segunda integral coincida con la
primera.
\begin{tabular}{rl}
\textsc{Integral} &\textsc{Value} \\
\hline
$\int_0^x t\, dt$ &$x^2/2$ \rule{0em}{2.5ex} \\
$\int_0^x t^2\, dt$ &$x^3/3$ \rule{0em}{2.5ex}
\end{tabular}
(Aunque el comando de doble barra invertida de final de lı́nea tiene un argumento opcional
para cambiar el salto de lı́nea base correspondiente, eso no resuelve este problema. Cambiar
la primera barra invertida doble a algo como \\[2.5ex] pondrá más espacio entre la lı́nea
de encabezado y la regla \hline, y la integral seguirı́a cumpliendo la regla).
Capı́tulo 19: Espacios 197
19.14 \vspace
Sinopsis, una de:
\vspace{length}
\vspace*{length}
Agrega length al espacio vertical. length puede ser positivo, negativo o cero. Es una
longitud elástica — puede contener un componente plus o minus (véase Capı́tulo 14
[Longitudes], página 138).
Esto pone espacio entre los dos párrafos.
Y dormı́.
19.15 \vfill
Sinopsis:
\vfill
Finaliza el párrafo actual e inserta una longitud elástica vertical que sea infinita, por lo
que se puede estirar o encoger tanto como sea necesario (véase Capı́tulo 14 [Longitudes],
página 138).
A menudo se usa de la misma manera que \vspace{\fill}, excepto que \vfill finaliza
el párrafo actual mientras que \vspace{\fill} agrega el espacio vertical infinito debajo de
Capı́tulo 19: Espacios 198
su lı́nea, independientemente de la estructura del párrafo. En ambos casos ese espacio desapa-
recerá en un perı́metro de la página; para eludir esto, ve la opción destacada en Sección 19.14
[\vspace], página 197.
En este ejemplo, la página está llena, por lo que las lı́neas superior e inferior contienen el
texto ‘¡Perro perdido!’ y el segundo ‘¡Perro perdido!’ es exactamente a medio camino
entre ellos.
\begin{document}
¡Perro perdido!
\vfill
¡Perro perdido! % perfectamente en el medio
\vfill
¡Perro perdido!
\end{document}
19.16 \addvspace
Sinopsis:
\addvspace{vert-length}
Agrega un espacio vertical de vert-length. Sin embargo, si hay dos o más \addvspace
en una secuencia y luego juntos solo agregan el espacio necesario para que la longitud
natural sea igual al máximo de la vert-length está en esa secuencia. Este comando es frágil
(véase Sección 12.11 [\protect], página 130). El vert-length es una longitud elástica (véase
Capı́tulo 14 [Longitudes], página 138).
Este ejemplo ilustra. El picture dibuja una escala sobre la cual se colocan las reglas. En
un artı́culo LATEX estándar, la longitud \baselineskip es 12 pt. Como muestra la escala, las
dos reglas están separadas por 22 pt: la suma del \baselineskip y el 10 pt desde el primer
\addvspace.
\documentclass{article}
\usepackage{color}
\begin{document}
\setlength{\unitlength}{2pt}%
\noindent\begin{picture}(0,0)%
\multiput(0,0)(0,-1){25}{{\color{blue}\line(1,0){1}}}
\multiput(0,0)(0,-5){6}{{\color{red}\line(1,0){2}}}
\end{picture}%
\rule{0.25\linewidth}{0.1pt}%
\par\addvspace{10pt}% \addvspace{20pt}%
\par\noindent\rule{0.25\linewidth}{0.1pt}%
\end{document}
Ahora descomenta el segundo \addvspace. No hace la brecha 20 pt más; en cambio, la
brecha es la suma de \baselineskip y 20 pt. Entonces \addvspace en cierto sentido hace
lo contrario de su nombre—se asegura de que múltiples espacios verticales no acumulan,
sino que sólo se utiliza el más grande.
LATEX usa este comando para ajustar el espacio vertical arriba o abajo de un entorno
que comienza un nuevo párrafo. Por ejemplo, un entorno theorem comienza y termina con
Capı́tulo 19: Espacios 199
\addvspace, por lo que dos theorem consecutivos están separados por un espacio vertical,
no dos.
Un error ‘Algo anda mal, tal vez un \item’ faltante que apunta a un \addvspace sig-
nifica que no estabas en modo vertical cuando presionaste este comando. Una forma de
cambiar eso es preceder a \addvspace con un comando \par (véase Sección 15.1 [\par],
página 146), como en el ejemplo anterior.
200
20 Cajas
En esencia, LATEX pone las cosas en cajas y luego pone las cajas en una página. Ası́ que
estos comandos son centrales.
Hay muchos paquetes en CTAN que son útiles para manipular cajas. Un complemento
útil para los comandos aquı́ es adjustbox.
Un uso común de \makebox es crear cuadros de texto de ancho cero. Esto pone el valor
de las preguntas del cuestionario a la izquierda de esas preguntas.
\newcommand{\pts}[1]{\makebox[0em][r]{#1 points\hspace*{1em}}}
\pts{10}¿Cuál es la velocidad en el aire de una golondrina sin carga?
20.3 \parbox
Sinopsis, una de:
\parbox{width}{contenido}
\parbox[position]{width}{contenido}
\parbox[position][height]{width}{contenido}
\parbox[position][height][inner-pos]{width}{contenido}
Produce un cuadro de texto de width de ancho. Usa este comando para hacer una caja de
peque~nos fragmentos de texto, de un solo párrafo. Este comando es frágil (véase Sección 12.11
[\protect], página 130).
\begin{picture}(0,0) ... \put(1,2){\parbox{1.75in}{\raggedright
Debido a que el gráfico es una lı́nea en este artı́culo semilog, la
relación es exponencial.}} \end{picture}
El contenido se procesa en modo texto (véase Capı́tulo 17 [Modos], página 179) por lo
que LATEX dividirá lı́neas para formar un párrafo. Pero no hará varios párrafos; para eso,
usa un entorno minipage (véase Sección 8.18 [minipage], página 77).
Las opciones para \parbox (excepto contenido) son las mismas como las de minipage.
Para mayor comodidad, un resumen de las opciones está aquı́, pero Sección 8.18 [minipage],
página 77, para obtener una descripción completa.
Capı́tulo 20: Cajas 203
Hay dos argumentos necesarios. El width es una longitud rı́gida (véase Capı́tulo 14
[Longitudes], página 138). Establece el ancho del cuadro en el que LATEX compone contenido.
contenido es el texto que se coloca en esa caja. No debe tener ningún componente de creación
de párrafos.
Hay tres argumentos opcionales, position, height e inner-pos. La position da la alineación
vertical de la parbox con respecto al material circundante. Los valores apoyados son c o
m para hacer que el centro vertical del parbox se alinea con el centro de la lı́nea de texto
adyacente (este es el predeterminado), o t para hacer coincidir la lı́nea superior del parbox
con la lı́nea base del material circundante, o b para que coincida con la lı́nea de fondo.
El argumento opcional height redefine la altura natural de la caja.
El argumento opcional inner-pos controla la ubicación de content dentro del parbox. Su
valor predeterminado es el valor de position. Sus posibles valores son: t para poner el content
en la parte superior del cuadro, c para ponerlo en el centro vertical, b para colocarlo en la
parte inferior del cuadro y s para estirarlo verticalmente (para ello, el texto debe contener
espacio extensible verticalmente).
20.4 \raisebox
Sinopsis, una de:
\raisebox{distance}{text}
\raisebox{distance}[height]{text}
\raisebox{distance}[height][depth]{text}
Sube o baja text. Este comando es frágil (véase Sección 12.11 [\protect], página 130).
Este ejemplo hace un comando para denotar la restricción de una función bajando el
sı́mbolo de la barra vertical.
\newcommand*\restricted[1]{\raisebox{-.5ex}{$|$}_{#1}}
$f\restricted{A}$
El primer argumento obligatorio distance especifica qué tan lejos subir el segundo
argumento obligatorio text. Esta es una longitud rı́gida (véase Capı́tulo 14 [Longitudes],
página 138). Si es negativo entonces baja text. El text se procesa en modo LR por lo que no
puede contener saltos de lı́nea (véase Capı́tulo 17 [Modos], página 179).
Los argumentos opcionales height y depth son dimensiones. Si se especifican, redefinen la
altura y profundidad natural de la caja, LATEX compone tipográficamente text.
En los argumentos distance, height y depth puedes utilizar las siguientes longitudes que
se refieren a la dimensión de la caja que LATEX empieza a componer text: \depth, \height,
\width, \totalheight (esta es la altura de la caja más su profundidad).
Esto alineará dos gráficos en su parte superior (véase Capı́tulo 22 [Gráficos], página 212).
\usepackage{graphicx,calc} % en el preámbulo
...
\begin{center}
\raisebox{1ex-\height}{%
\includegraphics[width=0.4\linewidth]{lion.png}}
\qquad
\raisebox{1ex-\height}{%
Capı́tulo 20: Cajas 204
\includegraphics[width=0.4\linewidth]{meta.png}}
\end{center}
El primer \height es la altura de lion.png mientras que el segundo es la altura de meta.png.
\end{enumerate}
\end{minipage}}
...
\usebox{\areg}
Como ejemplo de la eficiencia de reutilizar el contenido de un registro, esto pone la misma
imagen en cada página del documento colocándola en el encabezado. LATEX solo la compone
una vez.
\usepackage{graphicx} % todo esto en el preámbulo
\newsavebox{\sealreg}
\savebox{\sealreg}{%
\setlength{\unitlength}{1in}%
\begin{picture}(0,0)%
\put(1.5,-2.5){%
\begin{tabular}{c}
\includegraphics[height=2in]{companylogo.png} \\
La oficina del presidente
\end{tabular}}
\end{picture}%
}
\markright{\usebox{\sealreg}}
\pagestyle{headings}
El entorno picture es bueno para ajustar la ubicación.
Si el registro \noreg aún no se ha definido, obtendrás algo como ‘Secuencia de control
indefinida. <argument> \noreg’.
20.6 lrbox
Sinopsis:
\begin{lrbox}{box-cmd}
text
\end{lrbox}
Esta es la forma de entorno de los comandos \sbox y \savebox, y es equivalente a ellos.
Véase Sección 20.5 [\sbox y \savebox], página 204, para la descripción completa.
El text dentro del entorno se guarda en el cuadro de registro referido por la variable
box-cmd. El nombre de la variable box-cmd debe comenzar con una barra invertida, \.
Debes asignar esta caja regı́strate con anticipación con \newsavebox (véase Sección 12.7
[\newsavebox], página 125). En este ejemplo el entorno es conveniente para ingresar el
tabular.
\newsavebox{\jhreg}
\begin{lrbox}{\jhreg}
\begin{tabular}{c}
\includegraphics[height=1in]{jh.png} \\
Jim Hef{}feron
\end{tabular}
\end{lrbox}
Capı́tulo 20: Cajas 206
...
\usebox{\jhreg}
20.7 \usebox
Sinopsis:
\usebox{box-cmd}
Produce el cuadro guardado más recientemente en el registro de cuadro box-cmd por los
comandos \sbox o \savebox, o el entorno lrbox. Para obtener más información y ejemplos,
véase Sección 20.5 [\sbox y \savebox], página 204. (Ten en cuenta que el nombre de la
variable box-cmd comienza con una barra invertida, \). Este comando es robusto (véase
Sección 12.11 [\protect], página 130).
207
21 Color
Puedes agregar color al texto, reglas, etc. También puedes tener color en un cuadro o en
una página entera y escribir texto encima.
El soporte de color viene como un paquete adicional. Ası́ que pon \usepackage{color}
en el preámbulo de su documento para usar los comandos descritos aquı́.
Muchos otros paquetes también complementan las capacidades de color de LATEX. Par-
ticularmente digno de mención es xcolor, que se utiliza ampliamente y extiende significa-
tivamente las capacidades descritas aquı́, incluida la adición de modelos de color ‘HTML’ y
‘Hsb’.
modelos funcionan para esos controladores. Todo pero uno de estos también es compatible
con prácticamente todos los demás controladores de impresora usados hoy.
Ten en cuenta que la combinación de colores puede ser aditiva o sustractiva. Mezcla
aditiva de colores de luz, de modo que, por ejemplo, combinando intensidades completas de
rojo, verde y azul produce blanco. Mezclas sustractivas de pigmentos, como con tintas, de
modo que la combinación de la intensidad total de cian, magenta y el amarillo hace negro.
cmyk Una lista separada por comas con cuatro números reales entre 0 y 1, inclusive. El
primer número es la intensidad del cian, el segundo es magenta, y los otros son
amarillo y negro. Un valor numérico de 0 significa intensidad mı́nima, mientras
que un 1 es para intensidad máxima. Este modelo a menudo se utiliza en la
impresión a color. Es un modelo sustractivo.
gray Un solo número real entre 0 y 1, ambos inclusive. Los colores son sombras de
gris. El número 0 produce negro mientras que el 1 da blanco.
rgb Una lista separada por comas con tres números reales entre 0 y 1, inclusive. El
primer número es la intensidad del componente rojo, el segundo es verde, y el
tercero el azul. Un valor numérico de 0 significa que no se agrega nada de ese
componente, mientras que un 1 significa intensidad total. Este es un modelo
aditivo.
RGB (pdftex, xetex, luatex drivers) Una lista separada por comas con tres números
enteros entre 0 y 255, ambos inclusive. Este modelo es una conveniencia de usar
rgb ya que fuera de LATEX los colores a menudo se describen en un modelo
rojo-verde-azul usando números en este rango. Los valores introducidos aquı́ se
convierten al modelo rgb mediante división entre 255.
named Se accede a los colores por nombre, como ‘PrussianBlue’. La lista de nombres
depende del controlador, pero todos admiten los nombres ‘black’, ‘azul’, ‘cian’,
‘verde’, ‘magenta’, ‘rojo’, ‘white’ y ‘yellow’ (Consulta la opción dvipsnames
en Sección 21.1 [Opciones del paquete Color], página 207).
...
\nopagecolor
212
22 Gráficos
Puedes usar gráficos como archivos PNG o PDF en tu documento LATEX. Necesitas un
paquete adicional, que viene estándar con LATEX. Este ejemplo es el breve procedimiento.
\include{graphicx} % va en el preámbulo
...
\includegraphics[width=0.5\linewidth]{plot.pdf}
Para usar los comandos descritos aquı́, el preámbulo de tu documento debe contener ya sea
\usepackage{graphicx} o \usepackage{graphics}. La mayorı́a de las veces, graphicx es
la mejor elección.
Los gráficos vienen en dos tipos principales, rasterizados y vectoriales. LATEX puede usar
ambos. En gráficos rasterizados, el archivo contiene una entrada para cada ubicación en
un arreglo, describiendo de qué color es. Un ejemplo es una fotografı́a en formato JPG. En
gráficos vectoriales, el archivo contiene una lista de instrucciones como ‘dibuja un cı́rculo
con este radio y ese centro’. Un ejemplo es un dibujo lineal producido por el programa
Asymptote, en formato PDF. En general, los gráficos vectoriales son más útiles porque
puedes cambiar la escala de su tama~ no sin pixelación u otros problemas, y porque suelen
tener un tama~ no más peque~ no.
Hay sistemas particularmente adecuados para hacer gráficos para un documento LATEX.
Por ejemplo, estos te permiten usar las mismas letras como en tu documento. LATEX viene
con un entorno picture (véase Sección 8.19 [picture], página 79) que tiene capacidades
simples. Además de eso, hay otras formas de incluir los comandos de creación de gráficos
en el documento. Dos de dichos sistemas son los paquetes PSTricks y TikZ. También hay
sistemas externos a LATEX, que generan un gráfico que incluyes usando los comandos de este
capı́tulo. Dos que usan un lenguaje de programación son Asymptote y MetaPost. Uno que
utiliza una interfaz gráfica es Xfig. La descripción completa de estos sistemas está fuera del
alcance de este documento; ve su documentación en CTAN.
son alias para dvips (y xdvi es monocromo). Los que no se deben usar para sistemas nuevos
son: dvipdf, dvipdfm, dviwin, dvipsone, emtex, pctexps, pctexwin, pctexhp, pctex32,
truetex, tcidvi, vtex (y dviwindo es un alias para dvipsone). Estos se almacenan en
archivos con una extensión .def, como pdftex.def.
El segundo tipo de opciones se encuentra a continuación.
demo En lugar de un archivo de imagen, LATEX coloca un rectángulo de 150 pt por 100 pt
(a menos que se especifique otro tama~ no en el comando \includegraphics).
draft Para cada archivo gráfico, no se muestra, sino que su nombre de archivo es
impreso en una caja del tama~no correcto. Para determinar el tama~
no, el archivo
debe estar presente.
final (Predeterminado) Redefinir cualquier opción draft anterior, de modo que el
documento muestra el contenido de los archivos gráficos.
hiderotate
No muestra texto girado. (Esto permite la posibilidad de que una vista previa
no tiene la capacidad de rotar el texto).
hidescale
No mostrar texto escalado. (Esto permite la posibilidad de que una vista previa
no tiene la capacidad de escalar).
hiresbb En un archivo PS o EPS, el tama~ no del gráfico se puede especificar de dos
formas. Las lı́neas de %%BoundingBox describen el tama~ no del gráfico usando un
número entero múltiplo de un punto PostScript, es decir, múltiplos enteros de
1/72 pulgada. Una adición posterior al lenguaje PostScript permite múltiplos
decimales, como 1.23, en lı́neas %%HiResBoundingBox. Esta opción tiene LATEX
para leer el tama~ no de esta última.
22.2.1 \graphicspath
Sinopsis:
\graphicspath{lista de directorios entre llaves}
Declara una lista de directorios para buscar archivos gráficos. Esto permite que luego
digas algo como \includegraphics{lion.png} en lugar de tener que dar su ruta.
LATEX siempre busca archivos gráficos primero en el directorio actual (y el directorio de
salida, si se especifica; véase [directorio de salida], página 268). La siguiente declaración le
dice al sistema que busque en el subdirectorio pix, y luego ../pix.
\usepackage{graphicx} % o gráficos; poner en el preámbulo
Capı́tulo 22: Gráficos 214
...
\graphicspath{ {pix/} {../pix/} }
La declaración \graphicspath es opcional. Si no lo incluyes entonces el valor predeter-
minado de LATEX es buscar en todos los lugares en los que generalmente busca un archivo
(usa el \input@path de LATEX). En particular, en este caso uno de los lugares donde mira es
el directorio actual.
Encierra cada nombre de directorio entre llaves; por ejemplo arriba dice ‘{pix}’. Haz
esto incluso si solo hay un directorio. Cada nombre de directorio debe terminar en una
barra diagonal, /. Esto es cierto incluso en Windows, donde una buena práctica es usar
barras diagonales para todos los separadores de directorio ya que hace que el documento
sea portátil a otras plataformas. Si tienes espacios en el nombre de tu directorio, usa dobles
comillas, como con {"my docs/"}. Usar una de estas reglas incorrectamente hará que LATEX
informe Error: Archivo `filename' no encontrado.
Básicamente, el algoritmo es que con este ejemplo, después de mirar en el directorio
actual,
\graphicspath{ {pix/} {../pix/} }
...
\usepackage{lion.png}
para cada uno de los directorios enumerados, LATEX lo concatena con el nom-
bre de archivo y busca el resultado, encontrando pix/lion.png y luego
../pix/lion.png. Este algoritmo significa que el comando \graphicspath no
busca subdirectorios recursivamente: si emites \graphicspath{{a/}} y el gráfico
está en a/b/lion.png entonces LATEX no lo encontrará. También significa que
puedes usar rutas absolutas como \graphicspath{{/home/jim/logos/}} o
\graphicspath{{C:/Users/Albert/Pictures/}}. Sin embargo, usar esto significa que
el documento no es portátil. (Puedes conservar portabilidad ajustando el parámetro
TEXINPUTS de tu archivo de configuración del sistema TEX; consulta la documentación de tu
sistema).
Puedes usar \graphicspath en cualquier parte del documento. Lo puedes usar más de
una vez. Muestra su valor con \makeatletter\typeout{\Ginput@path}\makeatother.
Los directorios se toman con respecto al archivo base. Eso es, supón que estás trabajando
en un documento basado en book/book.tex y contiene \include{chapters/chap1}. Si
en chap1.tex pones \graphicspath{{plots/}} entonces LATEX no buscará gráficos en
book/chapters/plots, sino en cambio en book/plots.
22.2.2 \DeclareGraphicsExtensions
Sinopsis:
\DeclareGraphicsExtensions{lista de extensiones de archivo
separadas por comas}
Declara las extensiones de nombre de archivo para probar. Esto te permite especificar
el orden en el que elegir los formatos gráficos cuando incluyes archivos gráficos dando el
nombre del archivo sin la extensión, como en \includegraphics{functionplot}.
En este ejemplo, LATEX encontrará archivos en formato PNG antes que archivos PDF.
\DeclareGraphicsExtensions{.png,PNG,.pdf,.PDF}
Capı́tulo 22: Gráficos 215
...
\includegraphics{lion} % encontrará lion.png antes que
lion.pdf
Debido a que el nombre de archivo lion no tiene punto, LATEX usa la lista de extensiones.
Para cada directorio en la ruta de gráficos (véase Sección 22.2.1 [\graphicspath], página 213),
LATEX probará las extensiones en el orden dado. Si no encuentra dicho archivo después de
probar todos los directorios y extensiones, entonces informa ‘! Error de LaTeX: Archivo
`lion' no encontrado’. Ten en cuenta que debes incluir los puntos al comienzo de las
extensiones.
Dado que los nombres de archivo de GNU/Linux y Macintosh distinguen entre mayúsculas
y minúsculas, la lista de extensiones de archivo distinguen entre mayúsculas y minúsculas en
esas plataformas. La plataforma Windows no distingue entre mayúsculas y minúsculas.
No es necesario que incluya \DeclareGraphicsExtensions en tu documento; el contro-
lador de la impresora tiene un valor predeterminado razonable. Por ejemplo, el pdftex.def
más reciente tiene esta lista de extensiones.
.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPEG,.JBIG2,.JB2
Para cambiar el orden, usa el paquete grfext.
Puedes usar este comando en cualquier parte del documento. Lo puedes usar más de una
vez. Muestra su valor con \makeatletter\typeout{\Gin@extensions}\makeatother.
22.2.3 \DeclareGraphicsRule
Sinopsis:
\DeclareGraphicsRule{extension}{type}{size-file
extension}{command}
Declara cómo manejar archivos gráficos cuyos nombres terminan en extensión.
Este ejemplo declara que todos los archivos con nombres de la forma nombre-de-archivo-
sin-punto.mps se tratará como salida de MetaPost, lo cual significa que el controlador de
la impresora usará su código de manejo de MetaPost para ingresar el archivo.
\DeclareGraphicsRule{.mps}{mps}{.mps}{}
Este
\DeclareGraphicsRule{*}{mps}{*}{}
le dice a LATEX que debe manejar como salida MetaPost cualquier archivo con una extensión
no cubierta por otra regla, por lo que cubre filename.1, nombre-de-archivo.2, etc.
Esto describe los cuatro argumentos.
extension La extensión de archivo a la que se aplica esta regla. La extensión es cualquier
cosa después e incluyendo el primer punto en el nombre del archivo. Usa la
estrella Kleene, forma-*, para indicar el comportamiento predeterminado de
todas las extensiones no declaradas.
type El tipo de archivo involucrado. Este tipo es una cadena que se debe definir en el
controlador de la impresora. Por ejemplo, archivos con extensiones .ps, .eps o
.ps.gz se pueden clasificar como tipo eps. Todos los archivos del mismo tipo
se ingresarán con el mismo comando interno por el controlador de la impresora.
Capı́tulo 22: Gráficos 216
Por ejemplo, los tipos de archivo que pdftex reconoce son: jpg, jbig2, mps,
pdf, png, tif.
tama~
no de extensión de archivo
La extensión del archivo a leer para determinar el tama~
no del gráfico, si existe
tal archivo. Puede ser lo mismo que extension pero puede ser diferente.
Como ejemplo, considera un gráfico PostScript. Para hacerlo más peque~ no, puede
estar comprimido en un archivo .ps.gz. Los archivos comprimidos no son fáciles
de leer por LATEX para que pueda poner la información del cuadro delimitador en
un archivo separado. Si size-file extension está vacı́o, entonces debes especificar
la información de tama~no en los argumentos de \includegraphics.
Si el archivo del controlador tiene un procedimiento para leer archivos de tama~
no
para tipo entonces se usará, de lo contrario usará el procedimiento para leer
archivos .eps. (Por lo tanto, puedes especificar el tama~no de archivos de mapa
de bits en un archivo con una lı́nea de estilo PostScript %%BoundingBox si no
otro formato está disponible).
command Un comando que se aplicará al archivo. Este a menudo se deja vacı́o.
Este comando debe comenzar con una sola comilla inversa. De este
modo, \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1}
especifica que cualquier archivo con la extensión .eps.gz se debe tratar
como un archivo eps, con la información de BoundingBox almacenado en el
archivo con extensión .eps.bb, y que el comando gunzip -c se ejecutará en tu
plataforma para descomprimir el archivo.
Tal comando es especı́fico para tu plataforma. Además, tu sistema TEX te
debe permitir ejecutar comandos externos; como medida de seguridad los sis-
temas modernos restringen la ejecución de comandos a menos que lo permitas
explı́citamente. Consulta la documentación de tu distribución TEX.
22.3.1 \includegraphics
Sinopsis del paquete graphics:
\includegraphics{filename}
\includegraphics[urx,ury]{filename}
\includegraphics[llx,lly][urx,ury]{filename}
\includegraphics*{filename}
\includegraphics*[urx,ury]{filename}
\includegraphics*[llx,lly][urx,ury]{filename}
Sinopsis del paquete graphicx:
\includegraphics{filename}
\includegraphics[key-value list]{filename}
\includegraphics*{filename}
\includegraphics*[key-value list]{filename}
Capı́tulo 22: Gráficos 217
...
\begin{center}
\vcenteredhbox{\includegraphics[width=0.4\textwidth]{plot}}
\hspace{1em}
\vcenteredhbox{\begin{minipage}{0.4\textwidth}
\begin{displaymath}
f(x)=x\cdot \sin (1/x)
\end{displaymath}
\end{minipage}}
\end{center}
Si usas el paquete graphics entonces las únicas opciones involucran el tama~ no del gráfico
(pero Sección 22.3.2 [\rotatebox], página 221, y Sección 22.3.3 [\scalebox], página 222).
Cuando un argumento opcional está presente, entonces es [urx,ury] y da las coordenadas
de la parte superior esquina derecha de la imagen, como un par de dimensiones TEX
(véase Sección 14.1 [Unidades de longitud], página 139). Si se omiten las unidades, de
manera predeterminada son bp. En este caso, se supone que la esquina inferior izquierda
de la imagen está en (0,0). Si hay dos argumentos opcionales, entonces el principal es
[llx,lly], especificando las coordenadas de la imagen abajo a la izquierda. Por lo tanto,
\includegraphics[1in,0.618in]{...} pide el gráfico se colocará de manera que tenga
1 pulgadas de ancho y 0.618 pulgadas alto y por lo que su origen está en (0,0).
El paquete graphicx te brinda muchas más opciones. Especifı́calos en una forma clave-
valor, como aquı́.
\begin{center}
\includegraphics[width=1in,angle=90]{lion}
\hspace{2em}
\includegraphics[angle=90,width=1in]{lion}
\end{center}
Las opciones se leen de izquierda a derecha. Ası́ que el primer gráfico de arriba está hecho
de una pulgada de ancho y luego se gira, mientras que el segundo se gira y luego se hace de
una pulgada de ancho. Por lo tanto, a menos que el gráfico sea perfectamente cuadrado, los
dos terminarán con diferentes anchos y alturas.
Hay muchas opciones. Las principales se enumeran primero.
Ten en cuenta que LATEX coloca un gráfico en un cuadro, que es conocido tradicionalmente
como su delimitador de cuadro (distinto del PostScript BoundingBox descrito a continuación).
El área impresa del gráfico puede ir más allá de este cuadro, o sentarse dentro de este cuadro,
pero cuando LATEX crea una página junta casillas y esta es la casilla asignada para el gráfico.
width El gráfico se mostrará de modo que su cuadro delimitador tenga este ancho. Un
ejemplo es \includegraphics[width=1in]{plot}. Puedes usar las dimensiones
TEX estándar (véase Sección 14.1 [Unidades de longitud], página 139) y también
es conveniente \linewidth, o en un documento de dos columnas, \columnwidth
(véase Sección 5.5 [Parámetros de composición de página], página 32). Un ejemplo
es que al usar calc puedes hacer que el gráfico sea 1 cm más estrecho que el ancho
del texto con \includegraphics[width=\linewidth-1.0cm]{hefferon.jpg}.
height El gráfico se mostrará de modo que su delimitador de cuadro tenga esta altura.
Puedes usar las dimensiones TEX estándar (véase Sección 14.1 [Unidades de
Capı́tulo 22: Gráficos 219
dan las cantidades del gráfico para no mostrar, es decir, LATEX recortará la
imagen 0 pulgadas a la izquierda, 0.1 pulgadas a la parte inferior, 0.2 pulgadas
a la derecha y 0.3 pulgadas en la parte superior. Consulta también la opción
viewport.
clip Si se establece en true, o solo se especifica como aquı́
\includegraphics[...,clip,...]{...}
luego, el gráfico se recorta al delimitador del cuadro. Esto es lo mismo que
utilizar la forma estrellada del comando, \includegraphics*[...]{...}.
page Proporciona el número de página de un archivo PDF de varias páginas. El valor
predeterminado es page=1.
pagebox Especifica qué delimitador de cuadro usar para los archivos PDF de entre
mediabox, cropbox, bleedbox, trimbox, o artbox. Los archivos PDF no tienen
el BoundingBox que los archivos PostScript tienen, pero pueden especificar
hasta cuatro rectángulos predefinidos. MediaBox da los lı́mites del medio fı́sico.
CropBox es la región a la que se recortará el contenido de la página cuando
se despliega. BleedBox es la región a la que se dirige el contenido de la página
se debe recortar en producción. TrimBox tiene las dimensiones previstas de
la página terminada. El ArtBox es el grado de significado del contenido de la
página. El controlador establecerá el tama~
no de la imagen en función de CropBox
si está presente, de lo contrario no utilizará uno de los otros, con un orden de
preferencia definido por el controlador. MediaBox siempre está presente.
interpolate
Habilita o deshabilita la interpolación de imágenes rasterizadas por parte del
espectador. Se puede configurar con interpolate=true o simplemente especifi-
carlo como aquı́.
\includegraphics[...,interpolate,...]{...}
quiet No escribe información en el registro. Lo puedes configurar con quiet=true o
simplemente especificarlo con \includegraphics[...,quiet,...]{...},
draft Si lo configuras con draft=true o simplemente lo especificas con
\includegraphics[...,draft,...]{...}
entonces el gráfico no aparecerá en el documento, posiblemente guardando tinta
de color de la impresora. En su lugar, LATEX colocará un cuadro vacı́o del tama~
no
correcto con el nombre del archivo impreso en él.
Estas opciones abordan el delimitador del cuadro para PostScript encapsulando archivos
gráficos, que tienen un tama~
no especificado con una lı́nea %%BoundingBox que aparece en
el archivo. Tiene cuatro valores, dando la coordenada x inferior, la coordenada y inferior,
la coordenada x superior y la coordenada y superior. Las unidades son puntos PostScript,
equivalentes a los puntos grandes de TEX, 1/72 pulgada. Por ejemplo, si un archivo .eps
tiene la lı́nea %%BoundingBox 10 20 40 80 entonces su tama~ no natural es 30/72 pulgadas de
ancho por 60/72 pulgadas de alto.
bb Especifica el cuadro delimitador de la región mostrada. El argumento es cuatro
dimensiones separadas por espacios, como con \includegraphics[.., bb= 0in
Capı́tulo 22: Gráficos 221
22.3.2 \rotatebox
Sinopsis si usas el paquete graphics:
\rotatebox{angle}{material}
Sinopsis si usas el paquete graphicx:
\rotatebox{angle}{material}
\rotatebox[key-value list]{angle}{material}
Pon material en un cuadro y lo gira angle grados en sentido antihorario.
Este ejemplo gira los encabezados de las columnas de la tabla cuarenta y cinco grados.
\begin{tabular}{ll}
\rotatebox{45}{Character} &\rotatebox{45}{NATO phonetic} \\
Capı́tulo 22: Gráficos 222
A &AL-FAH \\
B &BRAH-VOH
\end{tabular}
El material puede ser cualquier cosa que vaya en una caja, incluido un gráfico.
\rotatebox[origin=c]{45}{\includegraphics[width=1in]{lion}}
Para colocar el material rotado, el primer paso es que LATEX establece material en un
cuadro, con un punto de referencia en la lı́nea base izquierda. El segundo paso es la rotación,
predeterminada sobre el punto de referencia. El tercer paso es que LATEX calcula un cuadro
para delimitar el material rotado. Cuarto, LATEX mueve este cuadro horizontalmente para
que el borde izquierdo de este nuevo delimitador del cuadro coincida con el borde izquierdo
del cuadro del primer paso (no es necesario que coincidan verticalmente). Este nuevo cuadro
delimitador, en su nueva posición, es lo que LATEX usa como cuadro cuando se compone
tipográficamente este material.
Si usas el paquete graphics entonces la rotación es sobre el punto de referencia de la
caja. Si usas el paquete graphicx entonces estas son las opciones que pueden ir en la lista
de valores clave, pero ten en cuenta que puedes obtener el mismo efecto sin necesidad de este
paquete, excepto las opciones x e y (véase Sección 22.3.1 [\includegraphics], página 216).
origin El punto de la caja de material sobre el cual ocurre la rotación. El posible valor
es cualquier cadena que contenga uno o dos de: l para izquierda, r para derecha,
b para la parte inferior, c para el centro, t para la parte superior y B para la
lı́nea base. Ası́, la primera lı́nea aquı́
\rotatebox[origin=c]{180}{moon}
\rotatebox[origin=lB]{180}{LeBateau}
dará la vuelta a la imagen desde el centro mientras que la segunda voltea
tu imagen al revés sobre su lı́nea base izquierda. (El carácter c da el centro
horizontal en bc o tc pero da el centro vertical en lc o rc, y da ambos en c).
El valor predeterminado es lB.
x, y Especifica un punto arbitrario de rotación con \rotatebox[x=TEX
dimensión,y=TEX dimensión]{...} (véase Sección 14.1 [Unidades de longitud],
página 139). Estos dan la compensación desde el punto de referencia de la caja.
units Esta clave te permite cambiar el valor predeterminado de grados en el sentido
contrario a las agujas del reloj. Establecer units=-360 cambia la dirección a
grados en el sentido de las agujas del reloj y la configuración de units=6.283185
cambia a radianes en sentido contrario a las agujas del reloj.
22.3.3 \scalebox
Sinopsis:
\scalebox{factor horizontal}{material}
\scalebox{factor horizontal}[factor vertical]{material}
\reflectbox{material}
Escala el material.
Este ejemplo reduce a la mitad el tama~ no, tanto horizontal como verticalmente, del
primer texto y duplica el tama~
no del segundo.
\scalebox{0.5}{DRINK ME} and \scalebox{2.0}{Eat Me}
Capı́tulo 22: Gráficos 223
22.3.4 \resizebox
Sinopsis:
\resizebox{horizontal length}{vertical length}{material}
\resizebox*{horizontal length}{vertical length}{material}
Dado un tama~ no, como 3cm, transforma material para hacerlo a ese tama~ no. Si longitud
horizontal o longitud vertical es un signo de exclamación ! entonces se usa el otro argumento
para determinar un factor de escala para ambas direcciones.
Este ejemplo hace que el gráfico tenga media pulgada de ancho y lo escala verticalmente
por el mismo factor para evitar que se distorsione.
\resizebox{0.5in}{!}{\includegraphics{lion}}
La forma sin estrella \resizebox toma longitud vertical como la altura del cuadro
mientras que la forma estrellada \resizebox* lo lleva a ser altura+profundidad.
Por ejemplo, haz que el texto tenga una altura+profundidad de un cuarto de
pulgada con \resizebox*{!}{0.25in}{\parbox{3.5in}{Este cuadro tiene altura y
profundidad.}}.
Puedes usar \depth, \height, \totalheight y \width para referirte al tama~ no original
de la caja. Es decir, hace el texto de dos pulgadas de ancho pero manteniendo la altura
original con \resizebox{2in}{\height}{Dos pulgadas}.
224
23 Inserciones especiales
LATEX proporciona comandos para insertar caracteres que tienen un significado especial no
corresponde a los caracteres simples que puedes escribir.
LATEX usa la misma tabla fija para cambiar mayúsculas y minúsculas a lo largo de un
documento. La tabla utilizada está dise~nada para la codificación de fuente T1; esto funciona
bien con las fuentes TEX estándar para todos los alfabetos latinos, pero causará problemas
al usar otros alfabetos.
Para cambiar el caso del texto que resulta de una macro dentro de text tienes que hacer
la expansión. Aquı́ el \Schoolname produce ‘FACULTAD DE MATEMÁTICAS’.
\newcommand{\schoolname}{Facultad de matemáticas}
\newcommand{\Schoolname}{\expandafter\MakeUppercase
\expandafter{\schoolname}}
El paquete textcase trae algunas de las funciones que faltan en los comandos LATEX
estándar \MakeUppercase y \MakeLowerCase.
Para escribir en mayúsculas solo la primera letra de las palabras, puedes usar el paquete
mfirstuc.
El manejo de todas las reglas de mayúsculas y minúsculas especificadas por Unicode,
por ejemplo, para escrituras no latinas, es un trabajo mucho más grande que cualquier
cosa prevista en el TEX original y LATEX. Se ha implementado en el paquete expl3 a partir
de 2020. El artı́culo “Cambio de caso: De primitivas TEX al algoritmo Unicode”, (Joseph
Wright, TUGboat 41:1, https://tug.org/TUGboat/tb41-1/tb127wright-case.pdf), da
una buena visión general del tema, pasado y presente.
\guillemotleft («)
\guillemotright (»)
\guilsinglleft (‹)
\guilsinglright (›)
«, », ‹, › Comillas angulares simples y dobles, de uso común en francés.
\ldots
\textellipsis
\dot . . . Puntos suspensivos (tres puntos en la lı́nea base): \ldots y \dots tam-
bién trabaja en modo math (véase Sección 16.2.6 [Puntos], página 168). Ve la
descripción de los puntos suspensivos del modo math para obtener información
adicional.
\lq ‘ Comilla izquierda (apertura).
p
\textparagraph
¶ Signo de párrafo (pilcrow).
\pounds
\textsterling
£ libras esterlinas inglesas.
\quotedblbase („ )
\quotesinglbase (‚ )
„ y ‚ Comillas simples y dobles en la lı́nea base.
\rq ’ Comilla de derecha (de cierre).
s
\textsection
§ Signo de sección.
tex El logotipo de TEX.
\textasciicircum
^ circunflejo ASCII.
\textasciitilde
~ Tilde ASCII.
\textasteriskcentered
* asterisco centrado
\textbackslash
\ Barra invertida. Sin embargo, \texttt{\textbackslash} de manera prede-
terminada produce una barra invertida en letra romana (no de máquina de
escribir); para una barra invertida de máquina de escribir, es necesario utilizar
la codificación de tipo de letra T1 (u otra no predeterminada), como en:
\usepackage[T1]{fontenc}
\textbar | Barra vertical.
\textbardbl
|| Doble barra vertical.
Capı́tulo 23: Inserciones especiales 227
\textbigcircle
sı́mbolo de cı́rculo grande.
\textbraceleft
{ Llave izquierda. Ve los comentarios en \textbackslash arriba sobre hacer
que \texttt{\textbraceleft} produzca una llave en máquina de escribir.
\textbraceright
} Llave derecha. Ve los comentarios en \textbackslash arriba sobre hacer que
\texttt{\textbraceright} produzca una llave en máquina de escribir.
\textbullet
• Vi~
neta.
\textcircled{letter}
circulo alrededor de letra.
\textcompwordmark
\textcapitalcompwordmark
\textascendercompwordmark
Se utiliza para separar letras que normalmente se ligarı́an. Por ejemplo,
f\textcompwordmark i produce ‘fi’ sin ligadura. Este es más útil en idiomas
distintos del inglés. La forma \textcapitalcompwordmark tiene la altura
máxima de la fuente mientras que la forma \textascendercompwordmark tiene
la altura ascendente.
\textdagger
† Daga.
\textdaggerdbl
‡ Daga doble.
\textdollar (o \$)
$ signo de dólar.
\textemdash (o ---)
— Guión largo. Se utiliza para puntuación, por lo general similar a las comas
o paréntesis, como en ‘Los playoffs---si tienes suficiente suerte para
llegar a los playoffs --- son más como un sprint.’ Convenciones para
espaciar alrededor de guiones-em que varı́an ampliamente.
\textendash (o --)
– En-dash. Usado para rangos, como en ‘ve las páginas 12--14’.
\texteuro
El sı́mbolo de la moneda del euro: e. Para un dise~
no de glifo alternativo, prueba
el paquete eurosym; además, la mayorı́a de las fuentes hoy dı́a vienen con su
propio sı́mbolo de euro (Unicode U+20AC).
\textexclamdown (o !`)
¡ Signo de exclamación al revés.
\textfiguredash
Guión usado entre números, Unicode U+2012. Definido en junio de 2021 lan-
zamiento de LATEX. Cuando se usa en pdfTEX, aproximado por un guión-en;
Capı́tulo 23: Inserciones especiales 228
\textthreequartersemdash
“Tres cuartos” de guión largo, entre guión corto y guión largo.
\texttrademark
TM Sı́mbolo de marca comercial.
\texttwelveudash
“Dos tercios” guión largo, entre guión corto y guión largo.
\textunderscore
Guion bajo.
\textvisiblespace
Sı́mbolo de espacio visible.
23.5 Acentos
LATEX tiene una amplia compatibilidad para muchos de los scripts del mundo e idiomas,
proporcionada a través del paquete principal babel, que admite pdfLATEX, XeLATEX y
LuaLATEX. El paquete polyglossia proporciona una compatibilidad similar con estos
últimos dos motores.
Esta sección no cubre esa compatibilidad. Solo enumera los comandos del núcleo LATEX
para crear caracteres acentuados. Los comandos \capital... que se muestran aquı́ producen
formas alternativas para utilizar con mayúsculas. Estos no están disponibles con OT1.
A continuación, para que sean más fáciles de encontrar, los acentos se ilustran con
minúsculas ‘o’.
Ten en cuenta que \i produce una i sin punto, y \j produce una j sin punto. Estos se
usan a menudo en lugar de sus contrapartes punteadas cuando están acentuados.
\"
\capitaldieresis
ö Umlaut (diéresis).
\'
\capitalacute
ó Acento agudo.
\. ȯ Acento de punto.
\=
\capitalmacron
ō Acento macrón (sobre la barra).
\^
\capitalcircumflex
o Acento circunflejo (sombrero).
^
\`
\capitalgrave
ò Acento grave.
\~
\capitaltilde
n
~ Acento de tilde.
Capı́tulo 23: Inserciones especiales 230
23.5.1 \accent
Sinopsis:
\accent number character
Un comando primitivo de TEX utilizado para generar caracteres acentuados a partir de
acentos y letras. El acento es seleccionado por number, un argumento numérico, seguido de
un espacio y luego un character argumento para construir el carácter acentuado en la fuente
actual.
Estos son caracteres ‘e’ acentuados.
\accent18 e
Capı́tulo 23: Inserciones especiales 231
\accent20 e
\accent21 e
\accent22 e
\accent23 e
El primero es un acento grave, el segundo un carón, el tercero un breve, el cuarto un macrón,
y el quinto un anillo arriba.
La posición del acento la determina el dise~
nador de la fuente y, por lo tanto, el resultado
del uso de \accent puede diferir entre las fuentes. En LATEX es deseable tener glifos para
caracteres acentuados en lugar de construirlos usando \accent. Usar glifos que ya contienen
los caracteres acentuados (como en la codificación T1) permite la separación silábica correcta
mientras que \accent deshabilita la separación silábica (especı́ficamente con la codificación
de fuente OT1 donde los glifos acentuados están ausentes).
Puede haber un cambio de fuente opcional entre number y character. Ten en cuenta tam-
bién que este comando establece el \spacefactor a 1000 (véase Sección 19.5 [\spacefactor],
página 188).
Una caracterı́stica inevitable de algunas letras cirı́licas y la mayorı́a de las letras cirı́licas
acentuadas es que se deben ensamblar a partir de múltiples elementos (acentos, modificadores,
etc.) mientras \accent proporciona un solo acento y una sola combinación de letras. También
hay casos en los que deben aparecer acentos entre letras que \accent no admite. Aún existen
otros casos en los que las letras I y J tienen puntos sobre sus contrapartes minúsculas que
entran en conflicto con los acentos punteados. El uso de \accent en estos casos no funcionará
ya que no puede analizar mayúsculas/minúsculas.
\ng
\NG Letra lapona eng, también utilizada en fonética.
\o
\O ø y Ø.
\oe
\OE œ y Œ.
\ss
\SS ß y SS.
\th
\TH Espina de letra islandesa: þ y Þ. No disponible con codificación OT1, necesitas
el paquete fontenc para seleccionar una codificación de fuentes alternativa,
como T1.
23.8 \rule
Sinopsis, una de:
\rule{width}{thickness}
\rule[raise]{width}{thickness}
Produce una regla, un rectángulo relleno.
Este ejemplo produce una mancha rectangular, a veces llamada sı́mbolo de Halmos, o
simplemente “qed”, a menudo usado para marcar el final de una prueba:
\newcommand{\qedsymbol}{\rule{0.4em}{2ex}}
El paquete amsthm incluye este comando, con un sı́mbolo de aspecto poco diferente.
Los argumentos obligatorios dan el width horizontal y el vertical thickness del rectángulo.
Son longitudes rı́gidas (véase Capı́tulo 14 [Longitudes], página 138). El argumento opcional
raise también es un argumento rı́gido y le dice a LATEX cuánto elevar la regla por encima de
la lı́nea base, o la baja si la longitud es negativa.
Esto produce una lı́nea, un rectángulo que es ancho pero no alto.
\noindent\rule{\textwidth}{0.4pt}
La lı́nea es el ancho de la página y 0.4 puntos de altura. El grosor esta lı́nea es común en
LATEX.
Una regla que tenga cero ancho o cero espesor, no aparecerá en la salida, pero puede
hacer que LATEX cambie la salida a su alrededor. Véase Sección 19.13 [\strut], página 195,
por ejemplo.
23.9 \today
Sinopsis:
\today
Produce la fecha de hoy en el formato ‘mes dd, yyyy’. Un ejemplo de una fecha en ese
formato es ‘julio 4, 1976’.
Paquetes multilingües como babel o polyglossia, o clases como lettre, localizarán
\today. Por ejemplo, lo siguiente generará ‘julio 4, 1976’:
\year=1976 \month=7 \day=4
\documentclass{minimal}
\usepackage[french]{babel}
\begin{document}
\today
\end{document}
Capı́tulo 23: Inserciones especiales 234
\today utiliza los contadores \day, \month y \year (véase Sección 13.8 [\day - \month y
\year], página 137).
Varios paquetes en CTAN funcionan con fechas. Uno es el paquete datetime que puede
producir una amplia variedad de formatos de fecha, incluidos los estándares ISO.
La fecha no se actualiza mientras se ejecuta el proceso LATEX, por lo que, en principio, la
fecha podrı́a ser incorrecta para cuando finalice el programa.
235
24 Dividir la entrada
LATEX te permite dividir un documento grande en varios peque~ nos. Esto puede simplificar la
edición o permitir que varios autores trabajen en el documento. También puede acelerar el
procesamiento.
Independientemente de cuántos archivos independientes utilices, siempre hay uno archivo
raı́z, en el que comienza la compilación de LATEX. Esto muestra tal archivo con cinco archivos
incluidos.
\documentclass{book}
24.1 \endinput
Sinopsis:
\endinput
Cuando \include{filename}, dentro de filename.tex el material después de
\endinput no se incluirá. Este comando es opcional; si filename.tex no tiene \endinput
entonces LATEX leerá todo el archivo.
Capı́tulo 24: Dividir la entrada 236
Por ejemplo, supón que el archivo raı́z de un documento tiene \input{chap1} y este es
chap1.tex.
\chapter{Uno}
Este material aparecerá en el documento.
\endinput
Esto no aparecerá.
Esto puede ser útil para poner documentación o comentarios al final de un archivo, o para
evitar caracteres basura que se pueden agregar si el archivo es transmitido en el cuerpo de
un correo electrónico. También es útil para depurar: una estrategia para localizar errores es
poner \endinput a mitad del camino a través del archivo incluido y ver si el error desaparece.
Ahora, sabiendo qué mitad contiene el error, mover el \endinput a la mitad a través de esa
área reduce aún más la ubicación. Este proceso encuentra rápidamente la lı́nea infractora.
Después de leer \endinput, LATEX continúa leyendo hasta el final de la lı́nea, por lo que
algo puede seguir este comando y ser leı́do, no obstante. Esto te permite, por ejemplo, cerrar
un \if... con un \fi.
\include{articles}
\include{amendments}
\end{document}
El archivo preamble.tex no contiene ningún código especial; justamente tienes un extracto
del capı́tulo constitution.tex y lo pones en un archivo separado solo por conveniencia de
edición.
\chapter{Preamble}
\includeonly{
{"amo amas amat"}
}
\begin{document}
\include{{"amo amas amat"}}
\end{document}
No puedes usar \include dentro de un archivo que se está incluyendo u obtienes ‘Error
LaTeX: \include no se puede anidar.’ El comando \include no puede aparecer en el
preámbulo del documento; vas a obtener ‘Error de LaTeX: Falta \begin{document}’.
Si un archivo que \include no existe, por ejemplo, si \include{athiesm} pero quisiste
decir \include{atheism}, entonces LATEX no te da un error pero te avisa ‘No hay archivo
athiesm.tex.’ (También creará athiesm.aux).
Si \include el archivo raı́z en sı́ mismo, primero obtienes ‘Error de LaTeX: solo se
puede usar en el preámbulo.’ Las ejecuciones posteriores obtienen ‘Capacidad excedida
de TeX, lo siento [text input levels=15]’. Arreglar esto, debe eliminar la inclusión
\include{root} pero también elimina el archivo root.aux y vuelve a ejecutar LATEX.
24.3 \input
Sinopsis:
\input{filename}
LATEX procesa el archivo como si su contenido estuviera insertado en el archivo actual.
Para un mecanismo de inclusión más sofisticado Sección 24.2 [\include e \includeonly],
página 236.
Si filename no termina en ‘.tex’ entonces LATEX primero intenta el nombre del archivo
con esa extensión; este es el caso habitual. Si filename termina con ‘.tex’ luego LATEX busca
el nombre de archivo tal como es.
Por ejemplo, este
\input{macros}
hará que LATEX busque primero macros.tex. Si encuentra ese archivo, entonces procesa su
contenido como si hubiera sido copiar y pegar. Si no hay ningún archivo con el nombre
macros.tex, entonces LATEX intenta el nombre macros, sin extensión. (Esto puede variar
según la distribución).
Para que tu documento sea portátil entre distribuciones y plataformas, debes evitar
espacios en los nombres de los archivos. La tradición es usar en su lugar guiones o guiones bajos.
No obstante, para el nombre ‘amo amas amat’, esto funciona bajo TEX Live en GNU/Linux:
\input{"amo\space amas\space amat"}
y esto funciona bajo MiKTEX en Windows:
\input{{"amo amas amat"}}
239
25 Material de portada/contraportada
Para cambiar el encabezado de la página de la tabla de contenido, haz algo como estos
comandos antes de llamar a \tableofcontents, etc.
\renewcommand{\contentsname}{Tabla de contenido}
\renewcommand{\listfigurename}{Traza}
\renewcommand{\listtablename}{especificaciones}
Paquetes de internacionalización como babel o polyglossia cambiará estos encabezados
según el idioma base elegido.
25.1.1 \@dottedtocline
Sinopsis:
\@dottedtocline{section-level-num}{indent}{numwidth}{text}{pagenumber}
Usado internamente por LATEX para formatear una lı́nea de entrada en la tabla de
contenido, lista de figuras o lista de tablas. Los autores no ingresan directamente los
comandos \@dottedtocline.
Este comando suele utilizarlo \l@section, \l@subsection, etc., para dar formato a las
lı́neas de contenido. Por ejemplo, el archivo article.cls contiene estas definiciones:
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
En este ejemplo, \@dottedcline parece haber recibido solo tres argumentos. Pero rastrear
el código interno muestra que recoge los argumentos finales text y pagenumber en la sinopsis
desde una llamada a \contentsline (véase Sección 25.1.4 [\contentsline], página 243).
Entre el cuadro para el texto del tı́tulo de una sección y el cuadro del margen derecho,
estos comandos \@dottedtocline insertan lı́deres punteados, es decir, puntos espaciados
uniformemente El espacio de punto a punto viene dado por el comando \@dotsep. De manera
predeterminada es 4.5 (está en unidades matemáticas, también conocido como mu, que son
1/18 em. Cámbialo usando \renewcommand, como en \renewcommand{\@dotsep}{3.5}.
En la clase book estándar, LATEX no usa lı́deres punteados para las entradas de la tabla
Part y Chapter, y en la clase article estándar no usa lı́deres punteados para las entradas
de la sección.
25.1.2 \addcontentsline
Sinopsis:
\addcontentsline{ext}{unit}{text}
Agrega una entrada al archivo auxiliar con extensión ext.
Lo siguiente resultará en una lı́nea ‘Apéndices’ en la tabla de contenido.
\addcontentsline{toc}{section}{\protect\textbf{Apéndices}}
Aparecerá al mismo nivel de sangrı́a que las secciones, estará en negrita, y se le asignará el
número de página asociado con el punto donde aparece el comando en el archivo de entrada.
El comando \addcontentsline escribe información en el archivo root-name.ext, donde
root-name es el nombre del archivo raı́z (véase Capı́tulo 24 [Dividir la entrada], página 235).
Escribe que información como el texto del comando \contentsline{unit}{text}{num},
dónde num es el valor actual del contador unit (véase Sección 25.1.4 [\contentsline],
Capı́tulo 25: Material de portada/contraportada 242
página 243). El caso más común es la tabla de contenido y allı́ num es el número de
página de la primera página de unit.
Este comando es invocado por los comandos de seccionado \chapter, etc. (véase
Capı́tulo 6 [Seccionado], página 41), y también por \caption dentro de un entorno flotante
(véase Sección 5.7 [Flotantes], página 36). Pero también lo utilizan directamente los autores.
Por ejemplo, un autor que escribe un libro cuyo estilo es tener un prefacio sin numerar
puede usar el \chapter* con asterisco. Pero ese comando omite la información de la tabla
de contenido, que se puede ingresar manualmente, como aquı́.
\chapter*{Preface}
\addcontentsline{toc}{chapter}{\protect\numberline{}Prefacio}
En el archivo root-name.toc LATEX pondrá la lı́nea \contentsline {chapter}{\numberline
{}Prefacio}{3}; nota que el número de página ‘3’ es generado automáticamente por el
sistema, no ingresado manualmente.
Todos los argumentos para \addcontentsline son obligatorios.
ext Por lo general, una de las cadenas toc para la tabla de contenido, lof para la
lista de figuras, o lot para la lista de tablas. La extensión del nombre de archivo
del archivo de información.
unit Una cadena que depende del valor del argumento ext, normalmente una de:
toc Para la tabla de contenido, este es el nombre de una unidad seccional:
part, chapter, section, subsection, etc.
lof Para la lista de figuras: figure.
lot Para la lista de tablas: table.
text El texto de la entrada. Debes \protect cualquier comando frágil (véase Sec-
ción 12.11 [\protect], página 130) utilizado en él.
El comando \addcontentsline tiene una interacción con \include (véase Sección 24.2
[\include e \includeonly], página 236). Si los usas en el mismo nivel, como con
\addcontentsline{...}{...}{...}\include{...} entonces las lı́neas en la tabla de
contenido pueden aparecer en el orden incorrecto. La solución es mover \addcontentsline
al archivo que se incluye.
Si usas una unidad que LATEX no reconoce, como con el error tipográfico aquı́
\addcontentsline{toc}{section}{\protect\textbf{Apéndices}}
entonces no obtienes un error sino que el formato en la tabla de contenido no tendrá sentido.
25.1.3 \addtocontents
Sinopsis:
\addtocontents{ext}{text}
Agrega text, que puede ser texto o comandos de formato, directamente a el archivo
auxiliar con extensión ext. Este es el más utilizado para la tabla de contenido, ası́ que esa es
la discusión aquı́, pero también se aplica a la lista de figuras y la lista de tablas.
Esto pondrá un espacio vertical en la tabla de contenido después del encabezado
‘Contenido’.
\tableofcontents\newpage
Capı́tulo 25: Material de portada/contraportada 243
\addtocontents{toc}{\protect\vspace*{3ex}}
Esto pone la palabra ‘Página’, en negrita, encima de la columna del número de página y
después del encabezado.
\tableofcontents
\addtocontents{toc}{~\hfill\textbf{Página}\par}
\chapter{...}
Esto agrega una lı́nea que anuncia el trabajo de un nuevo autor.
\addtocontents{toc}{%
\protect\vspace{2ex}
\textbf{Capı́tulos de N. Otro autor}\par}
La diferencia entre \addtocontents y \addcontentsline es que este último es estricta-
mente para lı́neas, como con una lı́nea que da el número de página para el comienzo de un
nuevo subconjunto de capı́tulos. Como muestran los ejemplos anteriores, \addtocontents
es para material como el espaciado.
El comando \addtocontents tiene dos argumentos. Ambos son requeridos.
ext Por lo general, uno de: toc para la tabla de contenido, lof para la lista de figuras,
o lot para la lista de tablas. La extensión del archivo contiene la información.
text El texto, y posiblemente los comandos, que se van a escribir.
Los comandos de seccionado como \chapter usan el comando \addcontentsline para
almacenar información. Este comando crea lı́neas en el archivo auxiliar .toc que contiene el
comando \contentsline (véase Sección 25.1.2 [\addcontentsline], página 241). A diferencia
de el comando \addtocontents coloca el material directamente en ese archivo.
El comando \addtocontents tiene una interacción con \include (véase Sección 24.2
[\include e \includeonly], página 236). Si los usas en el mismo nivel, como con
\addtocontents{...}{...}\include{...} entonces las lı́neas en la tabla de contenido
pueden aparecer en el orden incorrecto. La solución es mover \addtocontents al archivo
que se incluye.
25.1.4 \contentsline
Sinopsis:
\contentsline{unit}{text}{pagenumber}
Utilizado internamente por LATEX para componer una entrada de la tabla de contenido,
lista de figuras o lista de tablas (véase Sección 25.1 [Tabla de contenido etc.], página 239).
Los autores no ingresan directamente los comandos \contentsline.
Por lo general, la adición de material a estas listas la realizan automáticamente los
comandos \chapter, \section, etc. para la tabla de contenido, o por el comando \caption
dentro de un entorno \figure o \table (véase Sección 8.10 [figure], página 65, y véase
Sección 8.22 [table], página 91). De este modo, donde el archivo raı́z es thesis.tex y
contiene la declaración \tableofcontents, el comando \chapter{Capı́tulo Uno} produce
algo como esto en el archivo thesis.toc.
\contentsline {chapter}{\numberline {1}Capı́tulo uno}{3}
Capı́tulo 25: Material de portada/contraportada 244
25.1.5 \nofiles
Sinopsis:
\nofiles
Evita que LATEX escriba archivos auxiliares. La única salida serán los archivos .log y
.pdf (o .dvi). Este comando debe ir en el preámbulo.
Debido al comando \nofiles este ejemplo no producirá un archivo .toc.
\documentclass{book}
\nofiles
\begin{document}
\tableofcontents\newpage
\chapter{...}
...
LATEX no borrará ningún archivo auxiliar existente, por lo que si insertas el comando
\nofiles después de ejecutar el archivo y obtener un .toc entonces la página de la tabla
de contenido seguirá mostrando la información antigua.
25.1.6 \numberline
Sinopsis:
\numberline{number}
Escribe su argumento alineado a la izquierda en un cuadro. Esto se usa en un comando
\contentsline para escribir el número de sección (véase Sección 25.1.4 [\contentsline],
página 243).
Por ejemplo, esta lı́nea en un .toc hace que el 1.1 sea composición tipográfica a la
izquierda.
\contentsline {subsection}{\numberline {1.1}Motivación}{2}
De forma predeterminada, LATEX escribe los números de sección en un cuadro
de longitud \@tempdima. Esa longitud la establecen los comandos \l@section,
\l@subsection, etc. Poner números de sección dentro de una caja de ancho natural con
\renewcommand{\numberline}[1]{#1~} antes de \tableofcontents.
Capı́tulo 25: Material de portada/contraportada 245
Este comando es frágil, por lo que es posible que debas precederlo con \protect (véase
Sección 12.11 [\protect], página 130). Un ejemplo es el uso de \protect en este comando,
\addcontentsline{toc}{section}{\protect\numberline{}Resumen}
para obtener el \numberline en el comando \contentsline en el archivo .toc:
\contentsline {section}{\numberline {}Resumen}{6} (LATEX agrega automáticamente
el número de página ‘6’; véase Sección 25.1.2 [\addcontentsline], página 241).
25.2 Índices
Si le dices a LATEX qué términos quieres que aparezcan en un ı́ndice, entonces puede producir
ese ı́ndice, en orden alfabético y con los números de página mantenidos automáticamente.
Esto ilustra los conceptos básicos.
\documentclass{article}
\usepackage{makeidx} % Proporcionar comandos de indexación
\makeindex
% \usepackage{showidx} % Muestra notas al margen de las entradas
% del ı́ndice
...
\begin{document}
...
Teorema de Wilson\index{Teorema de Wilson}
dice que un número $n>1$ es primo si y solo si el factorial
de $n-1$ es congruente con $-1$
modulo~$n$.\index{congruencia!y el Teorema de Wilson}
...
\printindex
\end{document}
Como muestra, declara las entradas de ı́ndice con el comando \index (véase Sección 25.2.2
[\index], página 246). Cuando ejecutas LATEX, \index escribe su información, como ‘Teorema
de Wilson’ y el número de página, a un archivo auxiliar cuyo nombre termina en .idx. A
continuación, alfabetiza y hace otras manipulaciones, como ejecutar un comando externo,
normalmente makeindex (véase Sección 25.2.3 [makeindex], página 248), que escribe un
archivo cuyo nombre termina en .ind. Finalmente, \printindex trae esta información
manipulada en la salida (véase Sección 25.2.4 [\printindex], página 250).
Por lo tanto, si el ejemplo anterior está en el archivo numth.tex entonces ejecutar
‘pdflatex numth’ guardará la entrada de ı́ndice y la información del número de página a
numth.idx. Luego ejecutar ‘makeindex numth’ ordena alfabéticamente y guarda los resul-
tados en numth.ind. Finalmente, ejecutar de nuevo ‘pdflatex numth’ mostrará el ı́ndice
deseado, en el lugar donde está el comando \printindex en el archivo fuente.
Hay muchas opciones para la salida. Un ejemplo es que el signo de exclamación
en \index{congruencia!y teorema de Wilson} produce una entrada principal de
‘congruencia’ con una subentrada de ‘y Teorema de Wilson’. Para obtener más información,
véase Sección 25.2.3 [makeindex], página 248.
Los comandos \makeindex y \printindex son independientes. Omitir el \makeindex
evitará que LATEX guarde las entradas de ı́ndice al archivo auxiliar. Omitir el \printindex
hará que LATEX no muestre el ı́ndice en la salida del documento.
Capı́tulo 25: Material de portada/contraportada 246
Hay muchos paquetes en el área de indexación. El paquete showidx hace que cada entrada
de ı́ndice se muestre en el margen de la página donde aparece el \index. Esto puede ayudar
en la preparación del ı́ndice. El paquete multind, entre otros, admite múltiples ı́ndices.
Consulta también la entrada de preguntas frecuentes de TEX sobre este tema, https://www.
texfaq.org/FAQ-multind, y el tema de CTAN, https://ctan.org/topic/index-multi.
25.2.2 \index
Sinopsis:
\index{index-entry-string}
Declara una entrada en el ı́ndice. Este comando es frágil (véase Sección 12.11 [\protect],
página 130).
Por ejemplo, como se describe en Sección 25.2 [Índices], página 245, una forma de obtener
un ı́ndice de lo que sigue es compilar el documento con pdflatex test, entonces procesar
las entradas del ı́ndice con makeindex test y luego compilar de nuevo con pdflatex test.
% file test.tex
...
W~Ackermann (1896--1962).\index{Ackermann}
...
Ackermann function\index{Ackermann!function}
...
rate of growth\index{Ackermann!function!growth rate}
Las tres entradas de ı́ndice obtendrán un número de página, como ‘Ackermann, 22’. LATEX
formateará el segundo como un subelemento del primero, en la lı́nea debajo de ella y con
sangrı́a, y la tercera como subelemento de la segunda. Tres niveles de profundidad es lo
Capı́tulo 25: Material de portada/contraportada 247
Considera una entrada de ı́ndice como ‘α-ring’. Entrado como $\alpha$-ring hará que
se ordene alfabéticamente según el signo de dolar. En su lugar, lo puedes ingresar usando
un signo de arroba, como \index{alpha-ring@$\alpha$-ring}. Si especificas una entrada
con un signo de arroba que separa dos cadenas, pos@text, entonces pos da la posición
alfabética de la entrada mientras text produce el texto de la entrada. Otro ejemplo es
que \index{Saint Michael's College@SMC} produce una entrada de ı́ndice ‘SMC’ en orden
alfabético en una ubicación diferente a su ortografı́a lo darı́a naturalmente.
Para poner un carácter !, @, | o " en una entrada de ı́ndice, escápala precediéndola con
una comilla doble, ". (Las comillas dobles se eliminan antes de la alfabetización).
Varios paquetes en CTAN tienen funcionalidad adicional más allá de eso proporcio-
nada por makeidx. Uno es index, que permite múltiples ı́ndices y contiene un comando
\index*{index-entry-string} que imprime el index-entry-string además de indexarlo.
El comando \index escribe la información de indexación en el archivo root-name.idx.
Especı́ficamente, escribe texto del comando \indexentry{index-entry-string}{page-
num}, donde page-num es el valor del contador \thepage. Alguna ocasión, cuando el comando
\printindex se confunde, debes eliminar este archivo para comenzar con una pizarra nueva.
Si omites la llave de cierre de un comando \index entonces obtienes un mensaje como
este.
¿Argumento fugitivo? {Ackermann!function
! ! El párrafo terminó antes de que \@wrindex se completara.
25.2.3 makeindex
Sinopsis, una de:
makeindex filename
makeindex -s style-file filename
makeindex options filename0 ...
Ordenar y procesar la información del ı́ndice en el archivo auxiliar filename. Este es
un programa de lı́nea de comandos. Se necesita uno o más archivos de ı́ndice sin procesar,
archivos filename.idx y produce el archivo de ı́ndice real, el archivo filename.ind que
ingresa \printindex (véase Sección 25.2.4 [\printindex], página 250).
La primera forma del comando es suficiente para muchos usos, La segunda permite
formatear el ı́ndice usando un archivo de estilo de ı́ndice, un archivo .isty. La tercera forma
es la más general; ve la documentación completa en CTAN.
Este es un simple archivo .isty.
% book.isty
% $ makeindex -s book.isty -p odd book.idx
% crea el ı́ndice como book.ind, comenzando en una página impar.
preamble
"\\pagestyle{empty}
\\small
\\begin{theindex}
\\thispagestyle{empty}"
postamble
Capı́tulo 25: Material de portada/contraportada 249
"\n
\\end{theindex}"
La descripción aquı́ cubre solo algunos de los posibles formatos de ı́ndice en style-file.
Para obtener una lista completa, consulta la documentación en CTAN.
Un archivo de estilo consta de una lista de pares: specifier y attribute. Estos pueden
aparecer en el archivo en cualquier orden. Todos los attributes son cadenas, excepto donde
se indique. Las cadenas son entre comillas dobles, " y la longitud máxima de una cadena
tiene 144 caracteres. La \n es para una nueva lı́nea y \t es para una tabulación. Las barras
invertidas se escapan con otra barra invertida, \\. Si una lı́nea comienza con un signo de
porcentaje, %, entonces es un comentario.
preamble Preámbulo del archivo de ı́ndice de salida. Define el contexto en el que se
encuentra el ı́ndice formateado. Predeterminado: "\\begin{theindex}\n".
postamble
Postámbulo del archivo de salida del ı́ndice Predeterminado:
"\n\n\\end{theindex}\n".
group_skip
Tradicionalmente, los elementos del ı́ndice se dividen en grupos, generalmente
un grupo para entradas que comienzan con la letra ‘a’, etc. Este especifica-
dor da lo que se inserta cuando comienza un nuevo grupo. Predeterminado:
"\n\n \\indexspace\n" (\indexspace es un comando que inserta una longitud
elástica, de manera predeterminada es 10pt plus5pt minus3pt).
lethead_flag
un entero. Rige lo que se inserta para un nuevo grupo o letra. Si es 0 (que
es el valor predeterminado) entonces aparte de group_skip nada se insertará
antes del grupo. Si es positivo entonces en una nueva letra el lethead_prefix
y lethead_suffix serán insertada, con esa letra en mayúsculas entre ellas.
Si es negativo entonces lo que se insertará es la letra en minúsculas. El valor
predeterminado es 0.
lethead_prefix
Si un nuevo grupo comienza con una letra diferente, entonces este es el prefijo
insertado antes de la nueva letra del encabezado. Predeterminado: ""
lethead_suffix
Si un grupo comienza con una letra diferente, entonces este es el sufijo insertado
después del nuevo encabezado de carta. Predeterminado: "".
item_0 Lo que se pone entre dos elementos level 0. Predeterminado: "\n \\item ".
item_1 Colocar entre dos elementos level 1. Predeterminado: "\n \\subitem ".
item_2 Coloca entre dos elementos level 2. Predeterminado: "\n \\subsubitem ".
item_01 Lo que se coloca entre un elemento level 0 y un elemento level 1. Predeterminado:
"\n \\subitem ".
item_x1 Que se coloca entre un elemento level 0 y un elemento level 1 en el caso
de que el elemento level 0 no tenga ningún número de página (como en
\index{aaa|see{bbb}}). Predeterminado: "\n \\subitem ".
Capı́tulo 25: Material de portada/contraportada 250
25.2.4 \printindex
Sinopsis:
\printindex
Capı́tulo 25: Material de portada/contraportada 251
25.3 Glosarios
Sinopsis:
\usepackage{glossaries} \makeglossaries
...
\newglossaryentry{label}{settings}
...
\gls{label}.
...
\printglossaries
El paquete glossaries te permite crear glosarios, incluidos múltiples glosarios, ası́ como
listas de siglas.
Para obtener el resultado de este ejemplo, compila el documento (por ejemplo con nombre
de archivo pdflatex), entonces ejecuta el comando de lı́nea de comandos makeglossaries
filename y luego vuelve a compilar el documento.
\documentclass{...}
\usepackage{glossaries} \makeglossaries
\newglossaryentry{tm}{%
name={Máquina de Turing},
25.3.1 \newglossaryentry
Sinopsis, una de:
\newglossaryentry{label}
{
name={name},
description={description},
otras opciones, ...
}
o
\longnewglossaryentry{label}
{
name={name},
other options ...,
}
{description}
Declara una nueva entrada para un glosario. label debe ser único para el documento. Los
ajustes asociados a la etiqueta son pares: key=value.
Esto pone el sı́mbolo en negrita de la pizarra para los números reales en el glosario.
\newglossaryentry{R}
{
name={\ensuremath{\mathbb{R}}},
description={los números reales},
}
Usa la segunda forma del comando si description abarca más de un párrafo.
Para obtener una lista completa de key, consulta la documentación del paquete en CTAN,
pero aquı́ hay algunos.
name (Obligatorio). La palabra, frase o sı́mbolo que estás definiendo.
description
(Obligatorio). La descripción que aparecerá en el glosario. Si esto tiene más
de un párrafo, entonces debe usar la segunda forma del comando dado en la
sinopsis.
plural La forma plural de name. Refiérete a la forma plural usando \glspl o \Glspl
(véase Sección 25.3.2 [\gls], página 252).
sort Cómo colocar esta entrada en la lista de entradas que contiene el glosario.
symbol Un sı́mbolo, como un sı́mbolo matemático, además del nombre.
25.3.2 \gls
Sinopsis, una de:
\gls{label}
\glspl{label}
\Gls{label}
\Glspl{label}
Capı́tulo 25: Material de portada/contraportada 253
Consulta una entrada del glosario. Las entradas se declaran con \newglossaryentry
(véase Sección 25.3.1 [\newglossaryentry], página 252).
Este
\newglossaryentry{N}{%
name={los números naturales},
description={Los números $0$, $1$, $2$, $\ldots$\@},
symbol={\ensuremath{\mathbb{N}}},
}
...
Considera \gls{N}.
da la salida ‘Considera los números naturales’.
La segunda forma de comando \glspl{label} produce el plural de name (de manera
predeterminada intenta agregar una ‘s’). La tercera forma escribe en mayúscula la primera
letra de name, al igual que la cuarta forma, que también toma el plural.
254
26 Cartas
Sinopsis:
\documentclass{letter}
\address{dirección del remitente} % dirección de retorno
\signature{nombre del remitente}
\begin{document}
\begin{letter}{dirección del destinatario}
\opening{salutation}
cuerpo de la carta
\closing{texto de cierre}
\end{letter}
...
\end{document}
Producir una o más cartas.
Cada carta está en un entorno letter separado, cuyo argumento recipient address a
menudo contiene varias lı́neas separadas por una barra invertida doble, (\\). Por ejemplo,
podrı́as tener:
\begin{letter}{Ninon de l'Enclos \\
l'h\^otel Sagonne}
...
\end{letter}
El inicio del entorno letter restablece el número de página a 1, y la nota al pie al número
1 también.
El sender address y sender name son comunes a todas las cartas, ya sea que haya una
o más, por lo que es mejor ponerlas en el preámbulo. Al igual que con la dirección del
destinatario, a menudo sender address contiene varias lı́neas separadas por una doble barra
invertida (\\). LATEX pondrá el sender name bajo el cerramiento, tras un espacio vertical
para la tradicional firma manuscrita.
Cada cuerpo del entorno letter comienza con un comando \opening requerido como
\opening{Estimada se~ nora o se~ nor:}. El texto letter body LATEX es normal por lo que
puede contener todo, desde listas enumeradas hasta matemáticas mostradas, excepto que los
comandos como \chapter que no tienen sentido en una carta se desactivan. Cada cuerpo de
entorno letter normalmente termina con un comando \closing como \closing{Tuyo,}.
Puede haber material adicional después del \closing. Puedes decir quien está recibiendo
una copia de la carta con un comando como \cc{El Jefe \\ el jefe de jefes}. Hay un
comando \encl similar para una lista de material adjunto. Y puedes agregar una posdata
con \ps.
El valor predeterminado de LATEX es sangrar el nombre del remitente y el
cierre encima de él por una longitud de \longindentation. De manera predeter-
minada esto es 0.5\textwidth. Para que queden alineados a la izquierda, coloca
\setlength{\longindentation}{0em} en tu preámbulo.
Para establecer una fecha fija, usa algo como \renewcommand{\today}{1958-Oct-12}.
Si pones en tu preámbulo entonces se aplicará a todas las cartas.
Capı́tulo 26: Cartas 255
Este ejemplo muestra solo un entorno letter. Las tres lineas marcadas como opcionales
normalmente se omiten.
\documentclass{letter}
\address{Calle del remitente \\ Ciudad del remitente}
\signature{Nombre del remitente \\ Cargo del remitente}
% opcionales: \location{Buzón 13}
% optional: \telephone{(102) 555-0101}
\begin{document}
\begin{letter}{Nombre del destinatario \\ Dirección del destinatario}
\opening{Se~
nor:}
% opcional: \thispagestyle{firstpage}
No estoy interesado en entrar en un acuerdo comercial con usted.
\closing{Sus más humildes, etc.,}
\end{letter}
\end{document}
Estos comandos se usan con la clase letter.
26.1 \address
Sinopsis:
\address{dirección del remitente}
Especifica la dirección del remitente, tal como aparece en la carta y en el sobre. Separa
varias lı́neas en dirección del remitente con una barra invertida doble \\.
Debido a que se puede aplicar a varias cartas, esta declaración a menudo se pone en el
preámbulo. Sin embargo, puede ir en cualquier lugar, incluso dentro de un entorno letter
individual.
Este comando es opcional: si no lo usas, la carta se formatea con un espacio en blanco
en la parte superior, para copiar en papel preimpreso con membrete. Si usas la declaración
\address entonces tienes el formato de una carta personal.
Aquı́ tienes un ejemplo:
\address{Stephen Maturin \\
Las uvas de Savoy}
26.2 \cc
Sinopsis:
\cc{name0 \\
... }
Produce una lista de nombres a los que se enviaron copias de la carta. Este comando
es opcional. Si aparece, normalmente viene después de \closing. Pone los nombres en
diferentes lı́neas separándolos con una barra invertida doble, \\, como en:
\cc{Presidente \\
Vicepresidente}
Capı́tulo 26: Cartas 256
26.3 \closing
Sinopsis:
\closing{text}
Produce el cierre de la carta. Esto es opcional, pero habitual. Aparece al final de una
carta, encima de una firma manuscrita. Por ejemplo:
\closing{Respetuosamente,}
26.4 \encl
Sinopsis:
\encl{primer objeto encerrado \\
... }
Produce una lista de las cosas incluidas en la carta. Este comando es opcional; cuando
se usa, generalmente se coloca después de \closing. Separa varias lı́neas con una barra
invertida doble, \\.
\encl{License \\
Passport}
26.5 \location
Sinopsis:
\location{text}
El text aparece centrado en la parte inferior de la página. Sólo aparece si el estilo de la
página es firstpage.
26.6 \makelabels
Sinopsis:
\makelabels % en el preámbulo
Opcional, para un documento que contiene entornos letter. Si simplemente pones
\makelabels en el preámbulo y luego, al final del documento, obtendrás una hoja con
etiquetas para todos los destinatarios, una para cada entorno letter, que puedes copiar en
una hoja despegable de etiquetas de dirección.
Personaliza las etiquetas redefiniendo los comandos \startlabels, \mlabel y
\returnaddress (y quizás \name) en el preámbulo. El comando \startlabels establece el
ancho, alto, número de columnas, etc., de la página en la que se imprimen las etiquetas. El
comando \mlabel{return address}{recipient address} produce las dos etiquetas (o
una, si eliges ignorar la return address) para cada entorno letter. El primer argumento,
return address, es el valor devuelto por la macro \returnaddress. El segundo argumento,
recipient address, es el valor pasado en el argumento al entorno letter. Predeterminado
\mlabel ignora el primer argumento, el return address, provocando el comportamiento
predeterminado descrito en el párrafo anterior.
Esto ilustra la personalización. Su salida incluye una página con dos columnas con dos
etiquetas cada una.
\documentclass{letter}
Capı́tulo 26: Cartas 257
\renewcommand*{\returnaddress}{Fred McGuilicuddy \\
Oshkosh, Mineola 12305}
\newcommand*\originalMlabel{}
\let\originalMlabel\mlabel
\def\mlabel#1#2{\originalMlabel{}{#1}\originalMlabel{}{#2}}
\makelabels
...
\begin{document}
\begin{letter}{A Einstein \\
112 Mercer Street \\
Princeton, New Jersey, USA 08540}
...
\end{letter}
\begin{letter}{K G\"odel \\
145 Linden Lane \\
Princeton, New Jersey, USA 08540}
...
\end{letter}
\end{document}
La primera columna contiene la dirección del remitente dos veces. La segunda columna
contiene la dirección de cada destinatario.
El paquete envlab facilita el formateo de las etiquetas, con tama~ nos estándar ya
proporcionados. Las lı́neas del preámbulo \usepackage[personalenvelope]{envlab} y
\makelabels son todo lo que necesitas para imprimir sobres.
26.7 \name
Sinopsis:
\name{name}
Opcional. Nombre del remitente, utilizado para imprimir juntos en el sobre con la dirección
del remitente.
26.8 \opening
Sinopsis:
\opening{salutation}
Obligatorio. Requerido. Sigue el \begin{letter}{...}. El argumento salutation es
obligatorio. Por ejemplo:
\opening{Estimado John:}
26.9 \ps
Sinopsis:
\ps{text}
Agrega una posdata. Este comando es opcional y generalmente se usa después de
\closing.
Capı́tulo 26: Cartas 258
26.10 \signature
Sinopsis:
\signature{primera lı́nea \\
... }
El nombre del remitente. Este comando es opcional, aunque su inclusión es habitual.
El texto del argumento aparece al final de la carta, después del cierre. LATEX deja algo de
espacio vertical para una firma escrita a mano. Separa varias lı́neas con una doble barra
invertida, \\. Por ejemplo:
\signature{J Fred Muggs \\
Casa Blanca}
Valor predeterminado de LATEX para el espacio vertical del texto \closing hasta
el texto \signature es 6\medskipamount, que es seis veces \medskipamount (donde
\medskipamount es igual a un \parskip, que a su vez se define de manera predeterminada
aquı́ para 0.7 em).
Este comando suele estar en el preámbulo, para aplicar a todas las letras en el documento.
Para que se aplique a una sola carta, colócala dentro de un entorno letter y antes del
\closing.
Puedes incluir un gráfico en la firma como aquı́.
\signature{\vspace{-6\medskipamount}\includegraphics{sig.png}\\
Mi nombre}
Para esto debes poner \usepackage{graphicx} en el preámbulo (véase Capı́tulo 22 [Gráficos],
página 212).
26.11 \telephone
Sinopsis:
\telephone{number}
El número de teléfono del remitente. Esto es tı́picamente en el preámbulo, donde se aplica
a todas las cartas. Esto solo aparece si firstpage se selecciona el estilo de página. Si es ası́,
aparece en la parte inferior derecha de la página.
259
27 Entrada/salida
LATEX usa la capacidad de escribir en un archivo y luego volver a leerlo para crear componentes
de documentos como una tabla de contenido o un ı́ndice. También puedes leer un archivo
que escribieron otros programas, o escribir un archivo para que otros lo lean. Te puedes
comunicar con los usuarios a través de la terminal. Y puedes emitir instrucciones para el
sistema operativo.
decir más, y si encuentras algo que funcione para ti, entonces eres bueno, pero para asegurar
una portabilidad completa lo mejor es utilizar nombres de archivo que contiene solo las
veintiséis letras ASCII (no distingue entre mayúsculas y minúsculas) y los diez dı́gitos, junto
con el guión bajo y el guión, y en particular sin punto ni espacio.
Para \openin, si TEX no puede encontrar el archivo, entonces no da un error. Simplemente
considera que la transmisión no está abierta (prueba esto con \ifeof; un recurso es el
comando \InputIfFileExists, véase Sección 3.3.2 [Comandos class y package], página 10).
Si intentas usar el mismo número dos veces, LATEX no te dará un error. Si intentas usar un
número incorrecto y recibe un mensaje de error como ‘! Número incorrecto (16). <para
leer de nuevo> = l.30 \openin16=test.jh’.
27.2 \read
Sinopsis:
\read number tomacro
Hace que el comando macro contenga la siguiente lı́nea de entrada de texto que transmite
number, como en \read5 to\data.
Esto abre el archivo email.tex para lectura, pone el contenido de la primera lı́nea en el
comando \email y luego cierra el archivo.
\newread\recipientfile
\openin\recipientfile=email
\read\recipientfile to\email
\typeout{Email address: \email}
\closein\recipientfile
Si number está fuera del rango de 0 a 15 o si no hay archivo de ese número abierto, o
si el archivo ha finalizado, entonces \read tomará la entrada de la terminal (o saldrá si la
interacción no está permitida, por ejemplo, \nonstopmode; véase [modos de interacción],
página 268). (Sin embargo, la forma natural en LATEX de tomar entradas desde la terminal
es \typein (véase Sección 27.3 [\typein], página 260).
Para leer un archivo completo como fuente LATEX adicional, usa \input (véase Sección 24.3
[\input], página 238) o \include (véase Sección 24.2 [\include e \includeonly], página 236).
Una razón común para querer leer de un archivo de datos es realizar combinaciones de
correspondencia. CTAN tiene varios paquetes para eso; uno es datatool.
27.3 \typein
Sinopsis, una de:
\typein{prompt-msg}
\typein[cmd]{prompt-msg}
Imprime prompt-msg en la terminal y hace que LATEX se detenga y espere a que escribas
una lı́nea de entrada. Esta lı́nea de entrada termina cuando presiones la tecla de retorno.
Por ejemplo, este
Mientras viva, nunca olvidaré \typein{Ingresar el nombre del
estudiante:}
Capı́tulo 27: Entrada/salida 261
\@typein=Aphra Behn
da la salida ‘... nunca olvides a Aphra Behn’.
La primera versión del comando, \typein{prompt-msg}, provoca la entrada que escribiste
para ser procesada como si se hubiera incluido en el archivo de entrada en lugar del comando
\typein
En la segunda versión del comando, el argumento opcional cmd debe ser un nombre de
comando, es decir, debe comenzar con una barra invertida, \. Este nombre de comando se
define o redefine para ser la entrada que escribiste. Por ejemplo, este
\typein[\student]{Ingresa el nombre del estudiante:}
\typeout{Recomendación para \student .}
da esta salida en la lı́nea de comandos,
Ingresa el nombre del estudiante:
\student=John Dee
Recomendación para John Dee.
donde el usuario ha ingresado ‘John Dee.’
27.4 \typeout
Sinopsis:
\typeout{msg}
Imprime msg en la terminal y en el archivo log.
Este
\newcommand{\student}{John Dee}
\typeout{Recomendación para \student .}
genera ‘Recomendación para John Dee’. Como lo que pasa aquı́ con \student, comandos
que se definen con \newcommand o \renewcommand (entre otros) se reemplazan por sus
definiciones antes de ser impresos.
Las reglas habituales de LATEX para tratar múltiples espacios como un solo espacio e ignorar
los espacios después de un nombre de comando se aplica a msg. Utiliza el comando \space
para obtener un solo espacio, independiente de los espacios circundantes. Usa ^^J para obtener
una nueva lı́nea. Obtener un carácter de porcentaje con \csname @percentchar\endcsname.
Este comando puede ser útil para una depuración simple, como aquı́:
\newlength{\jhlength}
\setlength{\jhlength}{5pt}
\typeout{La longitud es \la\jhlength.}
produce en la lı́nea de comandos ‘La longitud es 5.0pt’.
Capı́tulo 27: Entrada/salida 262
27.5 \write
Sinopsis:
\write number{string}
Escribe string en el archivo de registro, en la terminal o en un archivo abierto por
\openout. Por ejemplo, \write6 escribe en texto corriente el número 6.
Si aparece lo siguiente en basefile.tex entonces se abre basefile.jh, escribe ‘Hello
World!’ y una nueva lı́nea y cierra ese archivo.
\newwrite\myfile
\immediate\openout\myfile=\jobname.jh % \jobname is root file basename
...
\immediate\write\myfile{Hello world!}
...
\immediate\closeout\myfile
El \newwrite asigna un número de flujo, dándole un valor de nombre simbólico para hacer
la vida más fácil, para que stream\newwrite\myfile\the\myfile produzca algo como
‘stream 3’. Entonces \openout asocia el número de flujo con el nombre de archivo dado.
TEX finalmente ejecutó \write3 que pone la cadena en el archivo.
Por lo general, number está entre 0 y 15, porque normalmente los autores de LATEX siguen
el ejemplo anterior y se asigna el número por el sistema. Si number está fuera del rango
de 0 a 15 o si no está asociado con un archivo abierto, LATEX escribe string al archivo de
registro. Si number es positivo entonces además LATEX escribe string en la terminal.
Por lo tanto, test \write-1{Hello World!} pone ‘Hello World!’ seguido de una nueva
lı́nea en el archivo de registro. (Esto es lo que dice el \wlog el comando lo hace; véase
Sección 27.5.3 [\wlog], página 264). Y \write100{Hola Mundo!} pone lo mismo en el archivo
de registro pero también pone ‘Hello World!’ seguido de una nueva lı́nea en la salida del
terminal. (Pero 16, 17 y 18 son especial como number; ve abajo).
En LuaTEX, en lugar de 16 flujos de salida, hay 256 (véase Sección 2.3 [Motores TEX],
página 3).
Usa \write\@auxout{string} para escribir en el actual .aux, que está asociado con
el archivo raı́z o con el archivo de inclusión actual; y usa \write\@mainaux{string} para
escribir en el .aux principal. Estos nombres simbólicos están definidos por LATEX.
De manera predeterminada LATEX no escribe string a la derecha del arreglo correcto.
Esto se debe a que, por ejemplo, puedes necesitar \write para guardar el número de página
actual, pero cuando TEX encuentra un \write por lo general no sabe cuál es el número de
página, ya que aún no ha hecho el salto de página. Entonces, usas \write en uno de tres
contextos:
\immediate\write\@auxout{string} %1
\write\@auxout{string} %2
\protected@write\@auxout{}{string} %3
1. Con el primero, LATEX escribe string en el archivo inmediatamente. Cualquier macro en
string está completamente expandida (al igual que en \edef), por lo que para evitar la
expansión debes usar \noexpand, toks, etc., excepto que debes usar # en lugar de ##).
Capı́tulo 27: Entrada/salida 263
2. Con el segundo, string se almacena en la lista actual de cosas (como un elemento TEX
“whatsit”) y se mantiene hasta que se envı́a la página y ası́ mismo las macros se contraen
hasta \shipout. En \shipout, string está completamente expandido.
3. El tercer, \protected@write, es como el segundo excepto que puedes usar \protect
para evitar la expansión. El primer argumento extra te permite insertar localmente
definiciones adicionales para hacer más macros protegidas o tener alguna otra definición
especial para escribir.
Como ejemplo simple de expansión con \write, string aquı́ contiene una secuencia de
control \triplex que hemos definido como el texto ‘XYZ’:
\newwrite\jhfile
\openout\jhfile=test.jh
\newcommand{\triplex}{XYZ}
\write\jhfile{test \triplex test}
Esto da como resultado el archivo test.jh que contiene el texto ‘test XYZtest’ seguido de
una nueva lı́nea.
Los casos en los que number es 16, 17 o 18 son especiales. Porque el comportamiento de
\write cuando number está fuera del rango de 0 a 15 descrito anteriormente, en Plain TEX
\write16 y \write17 a veces se usaba para escribir en el archivo de registro y el terminal;
sin embargo, en LATEX, la forma natural de hacerlo es con \typeout (véase Sección 27.4
[\typeout], página 261). El comando \write18 es aún más especial; los sistemas TEX
modernos lo usan para dar órdenes al sistema operativo (véase Sección 27.5.4 [\write18],
página 265).
Normalmente, \write genera una sola lı́nea. Puedes incluir una nueva lı́nea con ^^J. Por
lo tanto, esto produce dos lı́neas en el archivo de registro.:
\wlog{Las lı́neas paralelas tienen mucho en común.^^JPero nunca se
encuentran.}
Un caso común donde los autores necesitan escribir su propio archivo es para respuestas
a ejercicios, u otra situación en la que quieras escribir textualmente, sin expandir las macros.
CTAN tiene una serie de paquetes para esto; uno es answers.
solución más sencilla es poner los archivos incluidos en el mismo directorio que el archivo
raı́z, o en subdirectorios.
27.5.2 \message
Sinopsis:
\message{string}
Escribe string en el archivo de registro y en la terminal.
Por lo general, los autores de LATEX usan \typeout (véase Sección 27.4 [\typeout],
página 261). Eso te permite usar \protect en cualquier comando frágil en string (véase
Sección 12.11 [\protect], página 130). Pero \typeout siempre inserta una nueva lı́nea al final
de string mientras que \message no lo hace, por lo que este último puede ser útil.
Con este cuerpo del documento de ejemplo.
antes\message{Uno Dos}\message{Tres}\message{Cuatro^^JI}
\message{declarar una guerra de pulgares.}Después
bajo algunas circunstancias (ve más abajo) LATEX escribe lo siguiente para tanto la terminal
como el archivo de registro.
Uno Dos Tres Cuatro
Declaro una guerra de pulgares.
El ^^J produce una nueva lı́nea. Además, en el documento de salida, entre ‘before’ y ‘After’
será un solo espacio (del final de la lı́nea que sigue a ‘I}’).
Si bien \message te permite tener más control sobre el formato, un inconveniente es que
LATEX puede estropear ese formato porque inserta saltos de lı́nea dependiendo de lo que ya
has escrito. Contrasta este cuerpo del documento, donde ‘Two’ se ha movido, al que se indica
arriba.
antes de\message{Uno}\message{Dos Tres}\message{Cuatro^^JI}
\message{declara una guerra de pulgares.}Después
Esto puede suceder: cuando LATEX envı́a los mensajes a la terminal, ahora el mensaje
con ‘Uno’ es más corto y cabe al final de la lı́nea de salida en la terminal, y entonces LATEX
rompe la lı́nea entre él y ‘Dos Tres’. Ese salto de lı́nea también aparece en el archivo de
registro. Esta inserción de salto de lı́nea puede depender, por ejemplo, de la longitud de los
nombres completos de las rutas de los archivos incluidos. Por lo tanto, producir lı́neas de
una manera que es portátil es difı́cil, probablemente requiera comenzando su mensaje al
principio de una lı́nea.
27.5.3 \wlog
Sinopsis:
\wlog{string}
Escribe string en el archivo de registro.
\wlog{¿Escuchaste sobre el matemático que odia los negativos?}
\wlog{No se detendrá ante nada para evitarlo.}
Por lo general, string aparece en una sola lı́nea separada. Usa ^^J para insertar una
nueva lı́nea.
\wlog{Helvetica y Times Roman entran a un bar.}
\wlog{El barman dice,^^JNo servimos tu tipo.}
Capı́tulo 27: Entrada/salida 265
27.5.4 \write18
Sinopsis:
\write18{shell_command}
Emite un comando al shell del sistema operativo. El sistema operativo ejecuta el comando
y la ejecución de LATEX se bloquea hasta que acabe.
Esta secuencia (en Unix)
\usepackage{graphicx} % en el preámbulo
...
\newcommand{\fignum}{1}
\immediate\write18{cd pix && asy figure\fignum}
\includegraphics{pix/figure\fignum.pdf}
ejecutará Asymptote (el programa asy) en pix/figure1.asy, para que luego el documento
se pueda leer en el gráfico resultante (véase Sección 22.3.1 [\includegraphics], página 216).
Como cualquier \write, aquı́ LATEX expande macros en shell command para que \fignum
sea reemplazado por ‘1’.
Otro ejemplo es que puedes ejecutar automáticamente BibTEX al inicio de cada
ejecución de LATEX (véase Sección 8.24.4 [Usar BibTeX], página 100) incluyendo
\immediate\write18{bibtex8 \jobname} como la primera lı́nea del archivo. Ten en
cuenta que \jobname se expande al nombre base del archivo raı́z a menos que se pase la
opción --jobname en la lı́nea de comandos, en cuyo caso este es el argumento de la opción.
A veces es necesario realizar un proceso de varios pasos para obtener la información
de eso que quieres. Esto insertará en la entrada una lista de todos los archivos PDF en el
directorio actual (pero ve texosquery a continuación):
\immediate\write18{ls *.pdf > tmp.dat}
\input{tmp.dat}
El comportamiento estándar de cualquier \write es esperar hasta que una
página sea enviada antes de expandir las macros o escribir en la secuencia (véase
Sección 27.5 [\write], página 262). Pero a veces quieres que se haga ahora. Para esto, usa
\immediate\write18{shell_command}.
Hay problemas de seguridad obvios al permitir comandos del sistema dentro un archivo
LATEX. Si descargas un archivo de la red y contiene comandos para eliminar todos sus archivos,
entonces no estarı́as satisfecho. La configuración estándar en las distribuciones modernas
desactiva el acceso completo al intérprete de comandos. Lo puedes activar, si estás seguro
de que los comandos del intérprete son seguros, compilando con latex --enable-write18
filename (véase Sección 28.1 [Opciones de la lı́nea de comandos], página 267). (La opción
--shell-escape es un sinónimo, en TEX Live).
En lugar del acceso completo al intérprete, las distribuciones modernas por omisión
una versión restringida que permite que funcionen algunos comandos, como los que ejecuta
Metafont para generar fuentes que faltan, incluso si no usa la opción enable-write18. De
manera predeterminada esta lista de commands permitidos es corto y presenta solo los
comandos que están bajo el control de los mantenedores de la distribución (véase Sección 28.1
[Opciones de la lı́nea de comandos], página 267).
Capı́tulo 27: Entrada/salida 266
-help Proporciona un breve mensaje de uso que sea útil como aviso y sale.
-interaction=mode
TEX compila un documento en uno de cuatro modos de interacción: batchmode,
nonstopmode, scrollmode, errorstopmode. En errorstopmode (el predetermi-
nado), TEX se detiene en cada error y solicita la intervención del usuario. En
modo por lotes no imprime nada en la terminal, los errores se desplazan como
si el usuario presionara RETURN en cada error, y los archivos que faltan hacen
que se aborte el trabajo. En nonstopmode, aparece un mensaje de diagnóstico
en la terminal pero como en el modo por lotes, no hay interacción del usuario.
En scrollmode, TEX se detiene por falta de archivos o entrada del teclado, pero
nada más.
Por ejemplo, iniciar LATEX con esta lı́nea de comandos
pdflatex -interaction=batchmode filename
elimina la mayor parte de la salida de la terminal.
-jobname=string
Establece el valor de jobname de TEX en la cadena. El archivo de registro
y el archivo de salida entonces se llamará string.log y string.pdf. véase
Sección 28.3 [Nombre del trabajo], página 270.
-output-directory=directory
Escribe archivos en el directorio directory. Ya debe existir. Esto se aplica a todos
los archivos externos creados por TEX o LATEX, como el archivo .log para la
ejecución, el .aux, .toc, etc., archivos creados por LATEX, ası́ como el principal
archivo de salida .pdf o .dvi en sı́ mismo.
Cuando se especifica, el directorio de salida directory además primero se verifica
automáticamente cualquier archivo que se ingrese, de modo que los archivos
externos se pueden volver a leer, si se desea. El verdadero directorio actual (en
el que se ejecutó LATEX) permanece sin cambios, y también se comprobaron los
archivos de entrada.
--enable-write18
--disable-write18
--shell-escape
--no-shell-escape
Habilita o deshabilita \write18{shell_command} (véase Sección 27.5.4 [\wri-
te18], página 265). Las dos primeras opciones son compatibles con ambos TEX
Live y MiKTEX, mientras que las dos segundas son sinónimos compatibles por
TEX Live.
Habilitar esta funcionalidad tiene importantes implicaciones de seguridad, ya
que permite que un archivo LATEX ejecute cualquier comando. Por lo tanto, de
manera predeterminada, no se permite \write18 sin restricciones. (El valor
predeterminado para TEX Live, MacTEX y MiKTEX es permitir la ejecución de
un número limitado de programas relacionados con TEX, que ellos distribuyen).
Por ejemplo, si invocas a LATEX con la opción no-shell-escape, y en tu docu-
mento llamas a \write18{ls -l}, entonces no obtienes un error pero el archivo
de registro dice ‘runsystem(ls -l)...deshabilitado’.
Capı́tulo 28: Interfaz de lı́nea de comandos 269
-halt-on-error
Detiene el procesamiento en el primer error.
-file-line-error
-no-file-line-error
Habilita o deshabilita filename:lineno:error-style error de mensajes. Estos
solo están disponibles con TEX Live o MacTEX.
\include{chap2}
...
\end{document}
la lı́nea de comandos
pdflatex "\includeonly{chap1}\input{mybook}"
dará salida que tiene el primer capı́tulo pero ningún otro capı́tulo. Véase Capı́tulo 24 [Dividir
la entrada], página 235.
Debido a esta situación de catcode, usar el nombre del trabajo en un condicional se puede
volver complicado. Una solución es usar la macro \IfBeginWith del paquete xstring en su
variante estrella, que es insensible a catcode. Por ejemplo, en el siguiente texto la nota a pie
de página “Incluyendo Respublica Bananensis Francorum.” solo está presente si el nombre
de la tarea comienza con mi-doc.
Si una democracia es solo un régimen donde los ciudadanos votan
entonces todas las repúblicas bananeras
\IfBeginWith*{\jobname}{my-doc}% {\footnote{Incluyendo
Respublica Bananensis Francorum.}}{} son democracias.
Manipular el valor de \jobname dentro de un documento no camba el nombre del archivo
de salida o el archivo de registro.
\begin{document}
\maketitle
\begin{verbatim}
Este es \verbatim!
\end{verbatim}
\end{frame}
\end{document}
El paquete Beamer en CTAN: https://ctan.org/pkg/beamer.
\begin{document}
\maketitle
\section{Primera sección}
Algún texto.
Apéndice A: Plantillas de documentos 273
\section{Segunda sección}
Algo más de texto.
\end{document}
\begin{document}
\maketitle
\chapter{Primero}
Algún texto.
\chapter{Segundo}
Algún otro texto.
\section{Un subtema}
Fin.
\end{document}
\author{Autor Alex}
\includeonly{%
% frontcover,
preface,
chap1,
% appenA,
}
\begin{document}
\frontmatter
\include{frontcover}
% tal vez comentar mientras se redacta:
\maketitle \input{dedication} \input{copyright}
\tableofcontents
\include{preface}
\mainmatter
\include{chap1}
...
\appendix
\include{appenA}
...
\backmatter
\bibliographystyle{apalike}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliography
\addcontentsline{toc}{chapter}{Index}
\printindex
\include{backcover}
\end{document}
275
Índice
$ [
$ matemáticas en lı́nea . . . . . . . . . . . . . . . . . . . . . . . . . 77 [...] (para argumentos opcionales) . . . . . . . . . . . . . 5
$$...$$ normal TEX matemáticas
de visualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
^
^ superı́ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
& ^^J, in \write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
& (para celdas de tabla) . . . . . . . . . . . . . . . . . . . . . . . . 92
* _ subı́ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
‘*’ prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
*-forma, definiendo nuevos comandos . . . . . . . . . . 119
‘*}, para todas las claves \nocite’ . . . . . . . . . 101
\
*CLI* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 \ (backslash-space) . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
\ caracteres de inicio de comandos . . . . . . . . . . . . . . 5
\! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
– \" (acento diéresis) . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
\# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
--disable-write18 command-line option . . . . . 268
\$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
--enable-write18 command-line option . . . . . . 268
\% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
--file-line-error command-line option . . . . . 269
\& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
--halt-on-error command-line option. . . . . . . . 268
\' (acento agudo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
--help command-line option . . . . . . . . . . . . . . . . . . 267
\' (tabulación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
--interaction command-line option . . . . . . . . . . 268
\(...\) matemáticas en lı́nea . . . . . . . . . . . . . . . . . . 77
--jobname command-line option . . . . . . . . . . . . . . 268
\* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
--no-file-line-error command-line option . . 269
\+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
--no-shell-escape command-line option . . . . . 268
\, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
--output-directory command-line option . . . . 268
\- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
--shell-escape command-line option . . . . . . . . . 268
\- (separación silábica) . . . . . . . . . . . . . . . . . . . . . . . 108
--version command-line option . . . . . . . . . . . . . . 267
\. (acento de puntos) . . . . . . . . . . . . . . . . . . . . . . . . . 229
−1, escribe el número de flujo . . . . . . . . . . . . . . . . . 262
\/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
\: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
\; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
. \< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
.aux comandos file y BibTEX . . . . . . . . . . . . . . . . . . 101 \= (acento macrón) . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
.dvi archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \= (tabulación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
.fmt archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89, 173
.log archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \> (tabulación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
.lot archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 239, 243 \[...\] mostrar matemáticas . . . . . . . . . . . . . . . . . . 62
.pdf archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
.tex, extensión predeterminada . . . . . . . . . . . . . . 267 \^ (acento circunflejo) . . . . . . . . . . . . . . . . . . . . . . . . 229
.toc archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 239, 243 \_ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
.xdv archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 \` (acento grave) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
\` (tabulación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
\@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
/ \@auxout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
/bin/sh, usado por \write18 . . . . . . . . . . . . . . . . . 265 \@beginparpenalty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
\@dottedtocline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
\@endparpenalty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
: \@fnsymbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
\@ifstar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
: (para math) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
\@itempenalty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
\@mainaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Índice 276
\@startsection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 \AtEndDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
\\ (fuerza el salto de lı́nea) . . . . . . . . . . . . . . . . . . . 106 \AtEndOfClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
\\ (para \author) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 \AtEndOfPackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
\\ (para \title) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 \author{name1 \and name2 \and ...} . . . . . . . . . 181
\\ (para cartas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 \b (barra debajo del acento) . . . . . . . . . . . . . . . . . . 230
\\ (para centro) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 \backmatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
\\ (para eqnarray) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \backslash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\\ (para flushleft) . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 \bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
\\ (para flushright) . . . . . . . . . . . . . . . . . . . . . . . . . . 68 \baselineskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 35
\\ (para objetos \shortstack) . . . . . . . . . . . . . . . . . 86 \baselinestretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
\\ (para tabular) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 \begin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
\\ (para verse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 \beta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\\ (tabulación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 \bf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\\* (para eqnarray) . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \bfseries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 \bibdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
\} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 \bibitem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
\| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
\~ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 \bibliography y \bibdata interno . . . . . . . . . . . . 101
\~ (tilde acento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 \bibliographystyle . . . . . . . . . . . . . . . . . . . . . . . . . . 100
\a (tabulación) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 \bibliographystyle y \bibstyle interno . . . . . 101
\a' (acento agudo en tabulación). . . . . . . . . . . . . . . 90 \bibname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
\a= (acento macrón en tabulación) . . . . . . . . . . . . . 90 \bibstyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
\a` (acento grave en tabulación) . . . . . . . . . . . . . . . 90 \bigbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
\aa (å) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 \bigcap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\AA (Å) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 \bigcirc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\accent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 \bigcup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\acute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 \bigl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
\addcontentsline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 \bigodot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 \bigoplus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\addtocontents{ext}{text}. . . . . . . . . . . . . . . . . . 242 \bigotimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\addtocounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 \bigr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
\addtolength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 \bigskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
\addvspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 \bigskipamount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
\ae (æ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 \bigsqcup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\AE (Æ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 \bigtriangledown . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\aleph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \bigtriangleup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\Alph example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \biguplus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\Alph{counter} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 \bigvee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\alph{counter} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 \bigwedge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \bmod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
\alsoname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 \boldmath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
\amalg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\and (para \author) . . . . . . . . . . . . . . . . . . . . . . . . . . 181 \bottomfraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 \Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\approx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \breve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
\arabic{counter} . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 \bullet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\arccos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 \c (acento cedilla) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
\arcsin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 \cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\arctan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 \cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
\arg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 \capitalacute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
\arraycolsep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 \capitalbreve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
\arrayrulewidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 \capitalcaron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
\arraystretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 \capitalcedilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
\ast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \capitalcircumflex . . . . . . . . . . . . . . . . . . . . . . . . . . 229
\asymp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 \capitaldieresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
\AtBeginDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 \capitaldotaccent . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
\AtBeginDvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \capitalgrave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Índice 277
\kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 \linethickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
\l (ł) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 \linewidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
\l@chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 \listoffigures . . . . . . . . . . . . . . . . . . . . . . . . . 239, 243
\l@section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 \listoftables . . . . . . . . . . . . . . . . . . . . . . . . . . . 239, 243
\l@subsection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 \listparindent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
\L (Ł) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 \ll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\label. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 \ln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
\labelenumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \lnot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\labelenumii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \LoadClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\labelenumiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \LoadClassWithOptions . . . . . . . . . . . . . . . . . . . . . . . 13
\labelenumiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
\labelitemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
\labelitemii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \long. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
\labelitemiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \longleftarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\labelitemiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \longleftrightarrow . . . . . . . . . . . . . . . . . . . . . . . . 155
\labelsep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 \longmapsto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\labelwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 \longrightarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \lor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\Lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \lq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
\land. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \mainmatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
\langle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \makeatother . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
\Large. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 \makebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
\large. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 \makebox (para picture). . . . . . . . . . . . . . . . . . . . . . . 86
\LARGE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 \makeglossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
\LastDeclaredEncoding . . . . . . . . . . . . . . . . . . . . . . . 23 \makeindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
\lbrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \makelabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
\lbrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \makelabels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
\lceil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \maketitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
\ldots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168, 226 \mapsto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
\le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \marginpar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
\leadsto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \marginparpush. . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 148
\left. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 \marginparsep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
\Leftarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \marginparwidth . . . . . . . . . . . . . . . . . . . . . . . . . 33, 148
\leftarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 \marginsep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
\lefteqn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 \markboth{left-head}{right-head} . . . . . . . . . 184
\leftharpoondown . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \markright{right-head} . . . . . . . . . . . . . . . . . . . . . 184
\leftharpoonup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \mathbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\leftmargin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70, 73 \mathcal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\leftmargini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \mathdollar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
\leftmarginii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \mathellipsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
\leftmarginiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \mathnormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\leftmarginiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \mathparagraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
\leftmarginv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \mathring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
\leftmarginvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \mathrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\leftrightarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \mathsection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
\Leftrightarrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \mathsf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\leq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \mathsterling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
\lfloor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \mathstrut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
\lg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 \mathtt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\lhd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 \mathunderscore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
\lim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 \mathversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\liminf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 \max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
\limsup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 \mbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
\line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 \mdseries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\linebreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 \medbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
\lineskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 \medskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
\lineskiplimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 \medskipamount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
\linespread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 35 \medspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Índice 280
H L
h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 l polaco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
hace una caja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 lı́deres, punteados en la tabla de contenido . . . . 241
hacek accent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 lı́neas en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
hacer párrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 la fecha de hoy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
hacer una página de tı́tulo . . . . . . . . . . . . . . . . . . . . 102 la pila de matemáticas . . . . . . . . . . . . . . . . . . . . . . . . 178
Hola, mundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
hyperref package . . . . . . . . . . . . . . 116, 182, 244, 269 Lamport TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Lamport, Leslie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
landscape option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I Latı́n extendido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
i sin punto, matemáticas . . . . . . . . . . . . . . . . . . . . . . 154 latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 225
ij letra, Holandés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 latex comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
imágenes, crear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 latex-dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
implementaciones de TEX . . . . . . . . . . . . . . . . . . . . . . . 3 latex-doc-ptr document . . . . . . . . . . . . . . . . . . . . . . . 1
importar gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 LATEX archivos de formato (.fmt) . . . . . . . . . . . . . . . 3
in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 LATEX descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
inch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 LATEX vs. LATEX2e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
incluir gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 LATEX2e logo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
indent_length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 latexrefman@tug.org dirección de
indent_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 correo electrónico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
indentfirst package . . . . . . . 43, 44, 45, 46, 48, 147 latexsym package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
index package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 leer un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Información de la configuración legalpaper option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
regional, del sistema . . . . . . . . . . . . . . . . . . . . . . . . 266 leqno option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
información del sistema . . . . . . . . . . . . . . . . . . . . . . . 266 lethead_flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Información del sistema operativo . . . . . . . . . . . . . 266 lethead_prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
informar errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 lethead_suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 letra en cı́rculo, en texto . . . . . . . . . . . . . . . . . . . . . . 227
inmediato \write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 letras caligráficas para matemáticas . . . . . . . . . . . . 25
inputenc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Letras griegas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Inserción de caracteres especiales . . . . . . . . . . . . . . 224 letras griegas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Inserciones especiales . . . . . . . . . . . . . . . . . . . . . . . . . 224 letras latinas, adicional . . . . . . . . . . . . . . . . . . . . . . . 231
insertar figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 letras S nı́tidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
interfaz de lı́nea de comando . . . . . . . . . . . . . . . . . . 267 letras, acentuadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
interfaz, lı́nea de comandos. . . . . . . . . . . . . . . . . . . . 267 letras, latı́n adicional. . . . . . . . . . . . . . . . . . . . . . . . . . 231
italic font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 letter class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
item_0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 letter environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
item_01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 letterpaper opción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
item_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 leyendas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
item_12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 libro, asunto contraportada . . . . . . . . . . . . . . . . . . . . 48
item_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 libro, asunto final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
item_x1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 libro, asunto principal . . . . . . . . . . . . . . . . . . . . . . . . . . 48
item_x2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 libro, portada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
itemize environment . . . . . . . . . . . . . . . . . . . . . . . . . . 69 ligadura oe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
line_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
lining numerals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
J list environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
j sin punto, matemáticas . . . . . . . . . . . . . . . . . . . . . . 154 Lista de gabinetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
justificación de texto a la derecha . . . . . . . . . . . . . . 69 Listados de directorio, del sistema . . . . . . . . . . . . . 266
justificación, desigual izquierda . . . . . . . . . . . . . . . . . 69 listar elementos, especificando contador . . . . . . . 135
justificación, irregular a la derecha . . . . . . . . . . . . . 68 listas con vi~ netas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
justificar texto a la derecha, entorno para . . . . . . 68 listas de descripción, crear . . . . . . . . . . . . . . . . . . . . . 60
listas de elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
listas de elementos, genérica . . . . . . . . . . . . . . . . . . . . 71
K listas de elementos, numerados . . . . . . . . . . . . . . . . . 63
Knuth, Donald E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 listas de vi~ netas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
listas etiquetadas, crear . . . . . . . . . . . . . . . . . . . . . . . . 60
Índice 290
W xelatex-dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Wright, Joseph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 XeTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
xindex programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
xindy programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
X xparse package. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 124
x-height . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 xr package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
xdvi comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 xr-hyper package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
xdvipdfmx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 xspace package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
xelatex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 xstring package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270