<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Customising LaTeX output
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{PersonalizaciÃ³n de \LaTeX}

\begin{intro}
Los documentos producidos mediante las Ã³rdenes que ha aprendido hasta este punto parecerÃ¡n aceptables a una amplia audiencia.  Aunque no tienen un aspecto extraordinario, obedecen todas las reglas establecidas de composiciÃ³n correcta, lo que los harÃ¡ fÃ¡ciles de leer y plÃ¡cidos a la vista.

Sin embargo, hay situaciones donde \LaTeX{} no proporciona una orden o entorno que cubra sus necesidades, o la salida producida por algunas Ã³rdenes existentes puede no satisfacer sus expectativas.

En este capÃ­tulo, se darÃ¡n algunas pistas para enseÃ±ar a \LaTeX{} nuevos trucos y hacerle producir salidas con diferente aspecto del producido por omisiÃ³n.
\end{intro}


\section{Nuevas Ã³rdenes, entornos y paquetes}

Puede haber notado que todas las Ã³rdenes que presento en este libro se componen en una caja, y que se muestran en el Ã­ndice al final del libro.  En lugar de usar directamente las Ã³rdenes \LaTeX{} necesarias para conseguirlo, he creado un \wi{paquete} en que defino nuevas Ã³rdenes y entornos con este propÃ³sito.  Ahora puedo escribir simplemente:

\begin{example}
\begin{lscommand}
\ci{dum}
\end{lscommand}
\end{example}

En este ejemplo, estoy usando tanto un nuevo entorno llamado\\ \ei{lscommand}, que es responsable de dibujar la caja alrededor de la orden, y una nueva orden llamada \ci{ci}, que compone el nombre de la orden y hace la correspondiente entrada en el Ã­ndice.  Puede comprobarlo buscando la orden \ci{dum} en el Ã­ndice al final del libro, donde pude encontrar una entrada para \ci{dum}, apuntando a cada pÃ¡gina donde he mencionado la orden \ci{dum}.

Si alguna vez decido que no me gusta que las Ã³rdenes se compongan en una caja, puedo simplemente cambiar la definiciÃ³n del entorno \texttt{lscommand} para crear un nuevo aspecto.  Esto es mucho mÃ¡s fÃ¡cil que ir por todo el documento localizando todos los lugares en que he usado comandos \LaTeX{} genÃ©ricos para dibujar una caja alrededor de una palabra.


\subsection{Ã“rdenes nuevas}

Para aÃ±adir sus Ã³rdenes nuevas, use la orden
\begin{lscommand}
\ci{newcommand}\verb|{|%
       \emph{nombre}\verb|}[|\emph{nÃºm}\verb|]{|\emph{definiciÃ³n}\verb|}|
\end{lscommand}
%command. 
BÃ¡sicamente, lo orden requiere dos argumentos: el \emph{nombre} de la orden que quiere crear, y la \emph{definiciÃ³n} de la orden.  El argumento \emph{nÃºm} entre corchetes es opcional e indica el nÃºmero de argumentos que toma la nueva orden (hasta 9 son posibles).  Si no se indica el valor es 0, es decir, no se permiten argumentos.

Los siguientes dos ejemplos deberÃ­an ayudarle a entender la idea. El primer ejemplo define una nueva orden llamada \ci{intc}.  Es la abreviatura de ``La introducciÃ³n no-tan-corta a \LaTeXe''.  Tal orden podrÃ­a ser Ãºtil si tuviera que escribir el tÃ­tulo del libro una y otra vez.

\begin{example}
\newcommand{\intc}{La 
    introducciÃ³n no-tan-corta a
    \LaTeXe}
Esto es ``\intc'' \ldots{} 
``\intc''
\end{example}

El siguiente ejemplo ilustra cÃ³mo definir una orden nueva que toma un argumento. Los caracteres \verb|#1| se sustituyen por el argumento indicado.  Si quisiera usar un segundo argumento, use \verb|#2| y asÃ­ sucesivamente.

\begin{example}
\newcommand{\txsit}[1]
 {Esta es la IntroducciÃ³n
   \emph{#1}-corta a \LaTeXe}
% en el cuerpo del documento: 
\begin{itemize}
    \item \txsit{no-tan}
    \item \txsit{sÃºper}
\end{itemize}
\end{example}

\LaTeX{} no le permitirÃ¡ crear una nueva orden sobre una ya existente.  Pero hay una orden especial en el caso de que explÃ­citamente quisiera reemplazarla: \ci{renewcommand}. Usa la misma sintaxis que la orden \verb|\newcommand|.

En ciertos casos puede querer usar la orden \ci{providecommand}.  Funciona como \ci{newcommand} y hace que la orden sea definida si aÃºn no existe, pero no hace nada si ya estaba definida.

Hay algunos puntos que comentar sobre los espacios que siguen a las Ã³rdenes de \LaTeX{}.  Vea la pÃ¡gina  \pageref{whitespace} para mÃ¡s informaciÃ³n.

\subsection{Nuevos entornos}

Similar a la orden \verb|\newcommand|, hay una orden para crear sus propios entornos.  La orden \ci{newenvironment} usa la siguiente sintaxis:

\begin{lscommand}
\ci{newenvironment}\verb|{|%
       \emph{nombre}\verb|}[|\emph{nÃºm}\verb|]{|%
       \emph{antes}\verb|}{|\emph{despuÃ©s}\verb|}|
\end{lscommand}

TambiÃ©n \ci{newenvironment} puede tener un argumento opcional.  El material indicado en el argumento \emph{antes} se procesa antes de que se procese el texto del entorno.  El material en el argumento \emph{despuÃ©s} se procesa cuando se encuentra la orden \verb|\end{|\emph{nombre}\verb|}|.

El ejemplo siguiente ilustra el uso de la orden \ci{newenvironment}.
\begin{example}
\newenvironment{king}
 {\rule{1ex}{1ex}%
      \hspace{\stretch{1}}}
 {\hspace{\stretch{1}}%
      \rule{1ex}{1ex}}

\begin{king} 
Mis humildes ideas\ldots
\end{king}
\end{example}

El argumento \emph{nÃºm} se usa igual que con la orden \verb|\newcommand|. \LaTeX{} se asegura de que usted no defina un entorno que ya existe; pero si quiere alguna vez cambiar un entorno existente, puede usar la orden \ci{renewenvironment}.  Usa la misma sintaxis que la orden \ci{newenvironment}.

La orden usada en este ejemplo se explicarÃ¡ mÃ¡s tarde.  Para la orden \ci{rule} vÃ©ase la pÃ¡gina \pageref{sec:rule}, para \ci{stretch} vaya a la pÃ¡gina \pageref{cmd:stretch}, y puede hallar mÃ¡s informaciÃ³n sobre \ci{hspace} en la pÃ¡gina \pageref{sec:hspace}.

\subsection{Espacio extra}

Al crear un entorno nuevo puede hallar dificultades en el manejo del espacio adicional, que puede llegar a tener efectos fatales.  Por ejemplo, cuando quiera crear un entorno para tÃ­tulos que suprima su propia sangrÃ­a asÃ­ como la del siguiente pÃ¡rrafo.  La orden \ci{ignorespaces} en el bloque de comienzo del entorno harÃ¡ que Ã©ste prescinda de cualquier espacio tras ejecutar el bloque de comienzo. El bloque final requiere un poco mÃ¡s de cuidado porque tiene lugar un proceso especial al final del entorno.  La orden \ci{ignorespacesafterend} harÃ¡ que \LaTeX{} ejecute \ci{ignorespaces} despuÃ©s de que el proceso especial tenga lugar.

\begin{example}
\newenvironment{simple}%
 {\noindent}%
 {\par\noindent}

\begin{simple}
Mire el espacio\\a la izquierda.
\end{simple}
TambiÃ©n\\aquÃ­.
\end{example}

\begin{example}
\newenvironment{correct}%
 {\noindent\ignorespaces}%
 {\par\noindent%
   \ignorespacesafterend}

\begin{correct}
Sin espacio\\a la izquierda.
\end{correct}
TambiÃ©n\\aquÃ­.
\end{example}

\subsection{LÃ­nea de Ã³rdenes \LaTeX}

Si trabaja en un sistema operativo estilo \textsc{posix} (GNU o \textsc{unix}), quizÃ¡s use \ci{Makefile} para compilar sus documentos de \LaTeX{}.  Entonces podrÃ­a ser interesante producir diferentes versiones del mismo documento llamando a \LaTeX{} con diversos parÃ¡metros en la lÃ­nea de Ã³rdenes.  Si aÃ±ade la siguiente estructura a su documento:

\begin{verbatim}
\usepackage{ifthen}
\ifthenelse{\equal{\blancoynegro}{verdadero}}{
  % modo "blanco y negro"; hacer algo..
}{
  % modo "color"; hacer algo diferente..
}
\end{verbatim}

Ahora puede llamar a \LaTeX{} asÃ­:
\begin{verbatim}
latex '\newcommand{\blancoynegro}{verdadero}\input{test.tex}'
\end{verbatim}

Primero se define la orden \verb|\blancoynegro| y despuÃ©s se lee el \filenomo{} real.  Poniendo \verb|\blancoynegro| a falso se producirÃ¡ la versiÃ³n en color del documento.

\subsection{Su propio paquete}

Si define muchos nuevos entornos y Ã³rdenes, el preÃ¡mbulo de su documento se harÃ¡ muy largo.  En situaciones asÃ­ es buena idea crear un paquete \LaTeX{} que contenga todas sus definiciones de Ã³rdenes y entornos.  Puede usar despuÃ©s la orden \ci{usepackage} para cargar el paquete en su documento actual o en otros similares.

\begin{figure}[!htbp]
\begin{lined}{\textwidth}
\begin{verbatim}
% Paquete Demo de Tobias Oetiker
\ProvidesPackage{demopack}
\newcommand{\intc}{La introducciÃ³n no-tan-corta
                   a \LaTeXe}
\newcommand{\txsit}[1]{La introducciÃ³n \emph{#1}-corta
                       a \LaTeXe}
\newenvironment{king}{\begin{quote}}{\end{quote}}
\end{verbatim}
\end{lined}
\caption{Paquete de ejemplo.} \label{package}
\end{figure}

Escribir un paquete bÃ¡sicamente consiste en copiar el contenido del preÃ¡mbulo de su documento en un \filenomo{} separado con un nombre que termine en \texttt{.sty}.  Hay una orden especial,
\begin{lscommand}
\ci{ProvidesPackage}\verb|{|\emph{nombre paquete}\verb|}|
\end{lscommand}
para usar justo al principio de su \filenomo{} de paquete. \verb|\ProvidesPackage| dice a  \LaTeX{} el nombre del paquete y le permite emitir un mensaje de error notable cuando intente incluir el paquete dos veces.  La figura~\ref{package} muestra un pequeÃ±o paquete de ejemplo que contiene Ã³rdenes definidas en ejemplos anteriores.

\section{\Fontsnomo{} y tamaÃ±os}

\subsection{Ã“rdenes que cambian la \fontnomo{}}
\index{\fontnomo{}}\index{tamaÃ±o de la \fontnomo{}} \LaTeX{} escoge la \fontnomo{} y el tamaÃ±o de \fontnomo{} apropiados basÃ¡ndose en la estructura lÃ³gica del documento (secciones, notas al pie, \ldots).   En algunos casos, quizÃ¡ desee cambiar \fontsnomo{} y tamaÃ±os a mano.  Para hacerlo, puede usar las Ã³rdenes listadas en los cuadros~\ref{fonts} y~\ref{sizes}.  El tamaÃ±o real de cada \fontnomo{} es una cuestiÃ³n de diseÃ±o y depende de la clase de documento y de sus opciones.  El cuadro~\ref{tab:pointsizes} muestra los tamaÃ±os absolutos en puntos para estas Ã³rdenes segÃºn se implementan en las clases de documentos normales.

\begin{example}
{\small PequeÃ±a \textbf{negrita}
 del Ãfrica tropical,}
{\Large grande y \textit{cursi}va
 eres tÃº ya.}
\end{example}

Una caracterÃ­stica importante de \LaTeXe{} es que los atributos de \fontnomo{} son independientes.  Esto significa que puede poner Ã³rdenes para cambiar el tamaÃ±o o incluso la \fontnomo{}, y todavÃ­a se mantendrÃ¡n los atributos de negrita o cursiva establecidos anteriormente.

En \emph{modo mates} puede usar las \emph{Ã³rdenes} de cambio de \fontnomo{} para salir temporalmente del \emph{modo mates} e introducir texto normal.  Si quiere cambiar a otra \fontnomo{} para composiciÃ³n de mates necesita otro conjunto especial de Ã³rdenes; vÃ©ase el cuadro~\ref{mathfonts}.

\begin{table}[!bp]
\caption{\Fontsnomo{}.} \label{fonts}
\begin{lined}{12cm}
%
% Alan suggested not to tell about the other form of the command
% eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me.
%
\begin{tabular}{@{}rl@{\qquad}rl@{}}
\fni{textrm}\verb|{...}|        &amp;      \textrm{\wi{rematada}}&amp;
\fni{textsf}\verb|{...}|        &amp;      \textsf{\wi{palo seco}}\\
\fni{texttt}\verb|{...}|        &amp;      \texttt{de mÃ¡quina}\\[6pt]
\fni{textmd}\verb|{...}|        &amp;      \textmd{peso medio}&amp;
\fni{textbf}\verb|{...}|        &amp;      \textbf{\wi{negrita}}\\[6pt]
\fni{textup}\verb|{...}|        &amp;       \textup{\wi{recta}}&amp;
\fni{textit}\verb|{...}|        &amp;       \textit{\wi{cursiva}}\\
\fni{textsl}\verb|{...}|        &amp;       \textsl{\wi{oblicua}}&amp;
\fni{textsc}\verb|{...}|        &amp;       \textsc{\wi{Versalitas}}\\[6pt]
\ci{emph}\verb|{...}|          &amp;            \emph{destacada} &amp;
\fni{textnormal}\verb|{...}|    &amp;    \textnormal{por omisiÃ³n}
\end{tabular}

\bigskip
\end{lined}
\end{table}


\begin{table}[!bp]
\index{font size}
\caption{TamaÃ±os de \fontnomo{}.} \label{sizes}
\begin{lined}{12cm}
\begin{tabular}{@{}ll}
\fni{tiny}      &amp; \tiny        \fontnomo{} minÃºscula \\
\fni{scriptsize}   &amp; \scriptsize  \fontnomo{} muy pequeÃ±a\\
\fni{footnotesize} &amp; \footnotesize  bastante pequeÃ±a \\
\fni{small}        &amp;  \small          \fontnomo{} pequeÃ±a \\
\fni{normalsize}   &amp;  \normalsize  \fontnomo{} normal \\
\fni{large}        &amp;  \large       \fontnomo{} grande
\end{tabular}%
\qquad\begin{tabular}{ll@{}}
\fni{Large}        &amp;  \Large       mÃ¡s grande \\[5pt]
\fni{LARGE}        &amp;  \LARGE       muy grande \\[5pt]
\fni{huge}         &amp;  \huge        enorme \\[5pt]
\fni{Huge}         &amp;  \Huge        la mÃ¡s
\end{tabular}

\bigskip
\end{lined}
\end{table}

\begin{table}[!tbp]
\caption{TamaÃ±os absolutos en puntos para las clases normales.}\label{tab:pointsizes}
\label{tab:sizes}
\begin{lined}{12cm}
\begin{tabular}{lrrr}
\multicolumn{1}{c}{tamaÃ±o} &amp;
\multicolumn{1}{c}{10pt (por omisiÃ³n) } &amp;
           \multicolumn{1}{c}{opciÃ³n 11pt}  &amp;
           \multicolumn{1}{c}{opciÃ³n 12pt}\\
\verb|\tiny|       &amp; 5pt  &amp; 6pt &amp; 6pt\\
\verb|\scriptsize| &amp; 7pt  &amp; 8pt &amp; 8pt\\
\verb|\footnotesize| &amp; 8pt &amp; 9pt &amp; 10pt \\
\verb|\small|        &amp; 9pt &amp; 10pt &amp; 11pt \\
\verb|\normalsize| &amp; 10pt &amp; 11pt &amp; 12pt \\
\verb|\large|      &amp; 12pt &amp; 12pt &amp; 14pt \\
\verb|\Large|      &amp; 14pt &amp; 14pt &amp; 17pt \\
\verb|\LARGE|      &amp; 17pt &amp; 17pt &amp; 20pt\\
\verb|\huge|       &amp; 20pt &amp; 20pt &amp; 25pt\\
\verb|\Huge|       &amp; 25pt &amp; 25pt &amp; 25pt\\
\end{tabular}

\bigskip
\end{lined}
\end{table}


\begin{table}[!bp]
\caption{\Fontsnomo{} para mates.} \label{mathfonts}
\begin{lined}{0.7\textwidth}
\begin{tabular}{@{}ll@{}}
\fni{mathrm}\verb|{...}|&amp;     $\mathrm{Fundici\acute{o}n\ Rematada}$\\
\fni{mathbf}\verb|{...}|&amp;     $\mathbf{Fundici\acute{o}n\ Negrita}$\\
\fni{mathsf}\verb|{...}|&amp;     $\mathsf{Fundici\acute{o}n\ Palo\ Seco}$\\
\fni{mathtt}\verb|{...}|&amp;     $\mathtt{Fundici\acute{o}n\ De\
  M\acute{a}quina}$\\
\fni{mathit}\verb|{...}|&amp;     $\mathit{Fundici\acute{o}n\ Cursiva}$\\
\fni{mathcal}\verb|{...}|&amp;    $\mathcal{FUNDICI\acute{O}N\ CALIGR\acute{A}FICA}$\\
\fni{mathnormal}\verb|{...}|&amp; $\mathnormal{Fundici\acute{o}n\ Normal}$\\
\end{tabular}

%\begin{tabular}{@{}lll@{}}
%\textit{Command}&amp;\textit{Example}&amp;    \textit{Output}\\[6pt]
%\fni{mathcal}\verb|{...}|&amp;    \verb|$\mathcal{B}=c$|&amp;     $\mathcal{B}=c$\\
%\fni{mathscr}\verb|{...}|&amp;    \verb|$\mathscr{B}=c$|&amp;     $\mathscr{B}=c$\\
%\fni{mathrm}\verb|{...}|&amp;     \verb|$\mathrm{K}_2$|&amp;      $\mathrm{K}_2$\\
%\fni{mathbf}\verb|{...}|&amp;     \verb|$\sum x=\mathbf{v}$|&amp; $\sum x=\mathbf{v}$\\
%\fni{mathsf}\verb|{...}|&amp;     \verb|$\mathsf{G\times R}$|&amp;        $\mathsf{G\times R}$\\
%\fni{mathtt}\verb|{...}|&amp;     \verb|$\mathtt{L}(b,c)$|&amp;   $\mathtt{L}(b,c)$\\
%\fni{mathnormal}\verb|{...}|&amp; \verb|$\mathnormal{R_{19}}\neq R_{19}$|&amp;
%$\mathnormal{R_{19}}\neq R_{19}$\\
%\fni{mathit}\verb|{...}|&amp;     \verb|$\mathit{ffi}\neq ffi$|&amp; $\mathit{ffi}\neq ffi$
%\end{tabular}

\bigskip
\end{lined}
\end{table}

En relaciÃ³n a las Ã³rdenes de tamaÃ±o de \fontnomo{}, las \wi{llaves} representan un papel significativo.  Se usan para construir \emph{grupos}.  Los grupos limitan el alcance de la mayorÃ­a de las Ã³rdenes de \LaTeX{}.\index{grupos}\index{agrupar}

\begin{example}
Adora los {\LARGE grandes y
{\small pequeÃ±os} placeres}. 
\end{example}
 
Las Ã³rdenes de tamaÃ±o de \fontnomo{} tambiÃ©n cambian el espaciado entre renglones, pero sÃ³lo si el pÃ¡rrafo termina dentro del Ã¡mbito de la orden de tamaÃ±o de \fontnomo{}.  La llave de cierre \verb|}| deberÃ­a por tanto no llegar demasiado pronto.  FÃ­jese en la posiciÃ³n de la orden \ci{par} en los siguientes dos ejemplos.\footnote{\texttt{\bs{}par} equivale a un renglÃ³n en blanco.}


\begin{example}
{\Large Â¡No lea esto!
 No es verdad.
 Â¡Puede creerme!\par}
\end{example}

\begin{example}
{\Large Tampoco esto es verdad.
Mas recuerde quÃ© mendaz soy.}\par
\end{example}

Si quiere activar una orden de cambio de tamaÃ±o para un pÃ¡rrafo entero de texto o incluso mÃ¡s, puede usar la sintaxis de entorno para las Ã³rdenes de cambio de \fontnomo{}.

\begin{example}
\begin{Large} 
Esto no es verdad, pero
quÃ© diantres cabe esperar
en estos tiempos...\par
\end{Large}
\end{example}

Esto le ahorrarÃ¡ andar contando llaves.

\subsection{Â¡AtenciÃ³n: peligro!}

Como se comenta al principio de este capÃ­tulo, es peligroso sembrar el documento con Ã³rdenes explÃ­citas como Ã©sas, pues funcionan contra la idea bÃ¡sica de \LaTeX{}, que es separar la estructura de su documento del aspecto visual.  Esto significa que si usted usa la misma orden de cambio de \fontnomo{} en varios lugares para componer un tipo especial de informaciÃ³n, deberÃ­a usar \verb|\newcommand| para definir una ``orden lÃ³gica encubridora'' para la orden de cambio de \fontnomo{}.

\begin{example}
\newcommand{\ojo}[1]{%
 \textbf{#1}}
No \ojo{entre} en esta sala; estÃ¡ 
ocupada por \ojo{mÃ¡quinas} de 
origen y propÃ³sito desconocidos.
\end{example}

Este enfoque tiene la ventaja de que usted puede decidir en una etapa posterior que quiere usar alguna representaciÃ³n visual de peligro distinta de \verb|\textbf|, sin tener que recorrer todo el documento identificando cada apariciÃ³n de \verb|\textbf| y despuÃ©s deduciendo si ahÃ­ se usÃ³ para seÃ±alar un peligro o por alguna otra razÃ³n.


\subsection{Consejo}

Para concluir este viaje al mundo de las \fontsnomo{} y sus tamaÃ±os, acepte este humilde consejo:\nopagebreak

\begin{quote}
  \underline{\textbf{{\HugeÂ¡}Recuerde\Huge!}} \textit{Cuantas}
  \textsf{M\textbf{\LARGE Ã} \texttt{S}} \textsl{\fontsnomo{}} \Huge use
  \tiny en \footnotesize \textbf{un}  \small \texttt{documento},
  \large \textit{tanto} \normalsize mÃ¡s \textsc{legible} y
  \textsl{\textsf{lindo} \large s\Large e\LARGE r\huge Ã¡}.
\end{quote}

\section{Espaciado}
 
\subsection{Espacio entre renglones}

\index{espacio entre renglones} Si quiere usar mayor espacio entre renglones, puede cambiar su valor poniendo la orden
\begin{lscommand}
\ci{linespread}\verb|{|\emph{factor}\verb|}|
\end{lscommand}
en el preÃ¡mbulo de su documento. Use \verb|\linespread{1.3}| para espaciado de ``uno y medio'' y \verb|\linespread{1.6}| para espaciado ``doble''.  Normalmente los renglones no se separan, asÃ­ que el factor por omisiÃ³n es~1.\index{doble espaciado de renglones}

Tenga en cuenta que el efecto de la orden \ci{linespread} es bastante drÃ¡stico y no apropiado para publicar un trabajo.  AsÃ­ que si tiene una buena razÃ³n para cambiar el espacio entre renglones quizÃ¡ prefiera usar la orden:
\begin{lscommand}
\verb|\setlength{\baselineskip}{1.5\baselineskip}|
\end{lscommand}

\begin{example}
{\setlength{\baselineskip}%
           {1.5\baselineskip}
Este pÃ¡rrafo estÃ¡ compuesto con
el salto de lÃ­nea base puesto a
1,5 de lo que era antes.  FÃ­jese
en la orden par al final del
pÃ¡rrafo.\par}

Este pÃ¡rrafo tiene un propÃ³sito
claro: mostrar que, una vez se
cierran las llaves, todo vuelve
a la normalidad.
\end{example}

\subsection{Formato de pÃ¡rrafo}\label{parsp}

En \LaTeX{}, hay dos parÃ¡metros que influyen en el aspecto del pÃ¡rrafo.  Poniendo una definiciÃ³n
\begin{code}
\ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\
\verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}|
\end{code}
en el preÃ¡mbulo del \filenomo{} de entrada, puede cambiar el aspecto de los pÃ¡rrafos.  Estas dos Ã³rdenes incrementan el espacio entre dos pÃ¡rrafos y establecen la sangrÃ­a de pÃ¡rrafo a cero.

Las partes \texttt{plus} y \texttt{minus} de la longitud de arriba dicen a \TeX{} que puede comprimir y expandir el salto entre pÃ¡rrafos la cantidad indicada, si es necesario para ajustar apropiadamente los pÃ¡rrafos en la pÃ¡gina.

En algunos paÃ­ses europeos los pÃ¡rrafos suelen separarse algo y no se sangran.  Pero tenga en cuenta que esto tiene su efecto en el Ã­ndice general; sus renglones se espaciarÃ¡n mÃ¡s en ese caso.  Para evitarlo, puede mover las dos Ã³rdenes del preÃ¡mbulo a un lugar en su documento detrÃ¡s de la orden \verb|\tableofcontents| o no usarlo en absoluto, porque verÃ¡ que muchos libros profesionales usan sangrÃ­a y no espacio para separar pÃ¡rrafos.

Si quiere sangrar un pÃ¡rrafo que no estÃ¡ sangrado, puede usar
\begin{lscommand}
\ci{indent}
\end{lscommand}
al principio del pÃ¡rrafo. Obviamente,  sÃ³lo tendrÃ¡ efecto cuando \verb|\parindent| no valga cero. Para sangrar el primer pÃ¡rrafo tras cada tÃ­tulo de secciÃ³n, use el paquete \pai{indentfirst} del lote `tools'.

Para crear un pÃ¡rrafo no sangrado, puede usar
\begin{lscommand}
\ci{noindent}
\end{lscommand}
como primera orden del pÃ¡rrafo.  Puede ser Ãºtil si empieza un documento con texto de pÃ¡rrafo y no con una orden de secciÃ³n.

\subsection{Espacio horizontal}
\label{sec:hspace}

\LaTeX{} determina los espacios entre palabras y automÃ¡ticamente.  Para aÃ±adir espacio horizontal, use:
\index{horizontal!espacio}
\begin{lscommand}
\ci{hspace}\verb|{|\emph{longitud}\verb|}|
\end{lscommand}
Si dicho espacio debiera mantenerse incluso si cae al final o al principio de renglÃ³n, use \verb|\hspace*| en lugar de \verb|\hspace|. La \emph{longitud} en el caso mÃ¡s simple es sÃ³lo un nÃºmero mÃ¡s una unidad.  Las unidades mÃ¡s importantes se listan en el cuadro~\ref{units}. \index{unidades}\index{dimensiones}

\begin{example}
Ã‰ste\hspace{1.5cm}es un espacio
de 1,5 cm. 
\end{example}
\suppressfloats
\begin{table}[tbp]
\caption{Unidades \TeX{}.} \label{units}\index{unidades}
\begin{lined}{9.5cm} 
\begin{tabular}{@{}ll@{}}
\texttt{mm} &amp; milÃ­metro $\approx 1/25$~pulgada \quad \demowidth{1mm} \\
\texttt{cm} &amp; centÃ­metro = 10~mm  \quad \demowidth{1cm}                     \\
\texttt{in} &amp; pulgada $=$ 25,4~mm \quad \demowidth{1in}                    \\
\texttt{pt} &amp; punto $\approx 1/72$~pulgada $\approx \frac{1}{3}$~mm  \quad\demowidth{1pt}\\
\texttt{em} &amp; $\approx$ anchura de una `M' en la \fontnomo{} actual \quad \demowidth{1em}\\
\texttt{ex} &amp; $\approx$ altura de una `x' en la \fontnomo{} actual \quad \demowidth{1ex}
\end{tabular}

\bigskip
\end{lined}
\end{table}

\label{cmd:stretch} 
La orden
\begin{lscommand}
\ci{stretch}\verb|{|\emph{n}\verb|}|
\end{lscommand} 
genera espacio especial, que se expande hasta llenar todo el espacio sobrante en un renglÃ³n.  Si dos Ã³rdenes \verb|\hspace{\stretch{|\emph{n}\verb|}}| tienen lugar en el mismo renglÃ³n, los espacios crecen proporcionalmente a sus argumentos.

\begin{example}
x\hspace{\stretch{1}}
x\hspace{\stretch{3}}x
\end{example}

Al usar espacio horizontal junto con texto, puede tener sentido hacer que el espacio ajuste su tamaÃ±o en relaciÃ³n con el tamaÃ±o de la \fontnomo{} actual.  Esto puede hacerse usando las unidades relativas a la \fontnomo{} \texttt{em} y \texttt{ex}:

\begin{example}
{\Large{}gran\hspace{1em}y}\\
{\tiny{}pequeÃ±a\hspace{1em}y}
\end{example}
 
\subsection{Espacio vertical}

\LaTeX{} determina automÃ¡ticamente el espacio entre pÃ¡rrafos, secciones, subsecciones, etc. Si es necesario, puede aÃ±adirse espacio vertical adicional \emph{entre dos pÃ¡rrafos} con la orden:
\begin{lscommand}
\ci{vspace}\verb|{|\emph{longitud}\verb|}|
\end{lscommand}

Esta orden deberÃ­a usarse normalmente entre dos renglones vacÃ­os.  Si el espacio debe preservarse en lo alto o en lo bajo de la pÃ¡gina, use la versiÃ³n  de la orden con asterisco, \verb|\vspace*|, en lugar de \verb|\vspace|. \index{vertical!espacio}

La orden \verb|\stretch|, acompaÃ±ada de \verb|\pagebreak|, puede usarse para escribir texto en el Ãºltimo renglÃ³n de una pÃ¡gina, o para centrar texto verticalmente en una pÃ¡gina.
\begin{code}
\begin{verbatim}
Algo de texto...

\vspace{\stretch{1}}
Esto va en la Ãºltima lÃ­nea de la pÃ¡gina. \pagebreak
\end{verbatim}
\end{code}

Espacio adicional entre dos lÃ­neas del \emph{mismo} pÃ¡rrafo o dentro de una tabla se indica con la orden
\begin{lscommand}
\ci{\bs}\verb|[|\emph{longitud}\verb|]|
\end{lscommand}


Con  \ci{bigskip} y \ci{smallskip} puede saltar una cantidad predefinida de espacio vertical sin tener que preocuparse de nÃºmeros exactos.

\section{ComposiciÃ³n de la pÃ¡gina}

\begin{figure}[!hp]
\begin{center}
\makeatletter\@mylayout\makeatother
\end{center}
\vspace*{3ex}
\caption{ParÃ¡metros de composiciÃ³n de la pÃ¡gina.}
\label{fig:layout}
\cih{footskip}
\cih{headheight}
\cih{headsep}
\cih{marginparpush}
\cih{marginparsep}
\cih{marginparwidth}
\cih{oddsidemargin}
\cih{paperheight}
\cih{paperwidth}
\cih{textheight}
\cih{textwidth}
\cih{topmargin}
\end{figure}
\index{pÃ¡gina!composiciÃ³n}
\LaTeXe{} le permite indicar el \wi{tamaÃ±o del papel} en la orden \\ \verb|\documentclass|.  DespuÃ©s calcula los \wi{mÃ¡rgenes} adecuados, pero a veces usted no estarÃ¡ contento con los valores predefinidos. Naturalmente, puede cambiarlos. %no idea why this is needed here ...

\thispagestyle{fancyplain}
La figura~\ref{fig:layout} muestra todos los parÃ¡metros que pueden cambiarse.  La figura se creÃ³ con el paquete \pai{layout} del lote `tools'. \footnote{\CTANref|macros/latex/required/tools|}

\textbf{Â¡ESPERE!} Antes de lanzarse al frenesÃ­ de  ``Hagamos esa pÃ¡gina estrecha un poco mÃ¡s ancha'', dedique unos segundos a pensar. Como muchas cosas en \LaTeX, hay una buena razÃ³n para que el aspecto de la pÃ¡gina sea como es.

Por supuesto, comparada con su pÃ¡gina reciÃ©n salida de un paquete ofimÃ¡tico (como OpenOffice Writer o  MS Word), parece horrorosamente estrecha.  Pero eche un vistazo a su libro favorito\footnote{Me refiero a un libro real impreso y producido por una editorial con reputaciÃ³n.} y cuente el nÃºmero de caracteres en una lÃ­nea de texto normal.  HallarÃ¡ que no hay mÃ¡s de en torno a 66 caracteres en cada renglÃ³n.  Ahora haga lo mismo con su pÃ¡gina de \LaTeX{}; verÃ¡ lo mismo.  La experiencia muestra que la lectura se vuelve difÃ­cil en cuanto hay mÃ¡s caracteres por renglÃ³n.  Es asÃ­ porque a los ojos les resulta difÃ­cil moverse desde el final de un renglÃ³n al principio del siguiente.  Es la misma razÃ³n por la que los periÃ³dicos se componen en mÃºltiples columnas. AsÃ­ que si incrementa la anchura de su texto, tenga en cuenta que estÃ¡ haciendo la vida mÃ¡s difÃ­cil a los lectores de su documento.
 
Si de cualquier forma quiere hacerlo, \LaTeX{} proporciona dos Ã³rdenes para cambiar estos parÃ¡metros.  Se usan normalmente en el preÃ¡mbulo del documento.

La primera orden asigna un valor fijo a cualquiera de los parÃ¡metros:
\begin{lscommand}
\ci{setlength}\verb|{|\emph{parÃ¡metro}\verb|}{|\emph{longitud}\verb|}|
\end{lscommand}

La segunda orden aÃ±ade longitud a cualquier parÃ¡metro:
\begin{lscommand}
\ci{addtolength}\verb|{|\emph{parÃ¡metro}\verb|}{|\emph{longitud}\verb|}|
\end{lscommand} 

Esta segunda orden es de hecho mÃ¡s Ãºtil que la orden \ci{setlength}, pues puede usted asÃ­ trabajar en relaciÃ³n a las valores establecidos. Para aÃ±adir un centÃ­metro a la anchura total del texto, pongo las siguientes Ã³rdenes en el preÃ¡mbulo del documento:
\begin{code}
\verb|\addtolength{\hoffset}{-0.5cm}|\\
\verb|\addtolength{\textwidth}{1cm}|
\end{code}

En este  contexto, quizÃ¡ quiera mirar el paquete \pai{calc}.  Le permite usar operaciones aritmÃ©ticas en el argumento de \ci{setlength} y en otros lugares donde puede introducir valores numÃ©ricos en argumentos de funciones.

\section{MÃ¡s diversiÃ³n con las longitudes}

Siempre que sea posible, evite usar longitudes absolutas en los documentos \LaTeX{}.  Intente basar las cosas en la anchura o altura de otros elementos de la pÃ¡gina.  Para la anchura de una figura puede referirse a \verb|\textwidth| al componer la pÃ¡gina.

Las siguientes 3 Ã³rdenes le permiten determinar la anchura, altura y profundidad de una cadena de texto.

\begin{lscommand}
\ci{settoheight}\verb|{|\emph{variable}\verb|}{|\emph{texto}\verb|}|\\
\ci{settodepth}\verb|{|\emph{variable}\verb|}{|\emph{texto}\verb|}|\\
\ci{settowidth}\verb|{|\emph{variable}\verb|}{|\emph{texto}\verb|}|
\end{lscommand}

El ejemplo siguiente muestra una posible aplicaciÃ³n de estas Ã³rdenes.

\begin{example}
\flushleft
\newenvironment{vardesc}[1]{%
  \settowidth{\parindent}{#1:\ }
  \makebox[0pt][r]{#1:\ }}{}

\begin{displaymath}
a^2+b^2=c^2
\end{displaymath}

\begin{vardesc}{Donde}$a$, 
$b$ -- son adyacentes al Ã¡ngulo
recto de un triÃ¡ngulo rectÃ¡ngulo.

$c$ -- es la hipotenusa del
triÃ¡ngulo, y 

$d$ -- no sale aquÃ­
en absoluto. 
\end{vardesc}
\end{example}

\section{Cajas}

\LaTeX{} construye sus pÃ¡ginas colocando cajas.  En principio, cada letra es una cajita, que se pega a otras letras para formar palabras. Ã‰stas se pegan de nuevo a otras palabras, pero con un pegamento especial, que es tan elÃ¡stico que una serie de palabras puede comprimirse o expandirse para rellenar exactamente un renglÃ³n de la pÃ¡gina.

Esto es una simplificaciÃ³n de lo que realmente ocurre, pero realmente ocurre: \TeX{} trabaja con pegamento y cajas. Las letras no son las Ãºnicas cosas que son cajas.  Puede poner virtualmente cualquier cosa en una caja, incluso otras cajas.  Cada caja serÃ¡ manejada por \LaTeX{} como si fuera una simple letra.

En los capÃ­tulos anteriores ya ha encontrado algunas cajas, aunque no lo parezcan.  Los entornos \ei{tabular} e \ci{includegraphics}, por ejemplo, producen cajas.  Esto significa que puede usted fÃ¡cilmente colocar dos tablas o imÃ¡genes una al lado de la otra.  Basta con asegurarse de que su anchura combinada no excede la anchura del texto.

Puede tambiÃ©n empaquetar un pÃ¡rrafo de su elecciÃ³n en una caja con la orden

\begin{lscommand}
\ci{parbox}\verb|[|\emph{pos}\verb|]{|\emph{anchura}\verb|}{|\emph{texto}\verb|}|
\end{lscommand}

o el entorno

\begin{lscommand}
\verb|\begin{|\ei{minipage}\verb|}[|\emph{pos}\verb|]{|\emph{anchura}\verb|}| texto 
\verb|\end{|\ei{minipage}\verb|}|
\end{lscommand}

El parÃ¡metro \texttt{pos} puede tomar una de las letras \texttt{c, t} o \texttt{b} para controlar la alineaciÃ³n vertical de la caja, relativa a la lÃ­nea base del texto que la rodea. \texttt{anchura} toma como argumento la longitud que indica la anchura de la caja.  La principal diferencia entre una \ei{minipage} y una \ci{parbox} es que usted no puede usar todas las Ã³rdenes y entornos dentro de una \ei{parbox}, mientras que casi todo es posible en una \ei{minipage}.

Mientras que \ci{parbox} empaqueta un pÃ¡rrafo entero partiendo renglones y todo, hay tambiÃ©n una clase de Ã³rdenes encajonadoras que trabajan sÃ³lo con material alineado horizontalmente.  Ya conocemos una de ellas; se llama \ci{mbox}.  Simplemente empaqueta una serie de cajas en otra, y puede usarse para impedir a \LaTeX{} romper dos palabras.  Como puede  poner cajas dentro de cajas, estos empaquetadores de cajas horizontales le dan total flexibilidad.

La orden
\begin{lscommand}
\ci{makebox}\verb|[|\emph{anchura}\verb|][|\emph{pos}\verb|]{|\emph{texto}\verb|}|
\end{lscommand}

donde \texttt{anchura} define la anchura de la caja resultante vista desde fuera,\footnote{Esto significa que puede ser mÃ¡s pequeÃ±a que el material dentro de ella.  Usted puede incluso poner la anchura 0pt de forma que el texto de dentro de la caja se componga sin afectar a las cajas de alrededor.}  tiene un efecto parecido. AdemÃ¡s de las expresiones de longitud, puede tambiÃ©n usar \ci{width}, \ci{height}, \ci{depth} y \ci{totalheight} en el parÃ¡metro de anchura.  Se establecen a partir de valores obtenidos midiendo el \emph{texto} compuesto.  El parÃ¡metro \emph{pos} toma una letra como valor: \textbf{c}enter (centro), flush\textbf{l}eft (izquierda), flush\textbf{r}ight (derecha) o \textbf{s}pread (expandir el texto hasta llenar la caja).

La orden \ci{framebox} funciona exactamente igual que \ci{makebox}, pero dibuja una caja alrededor del texto.

El ejemplo siguiente le muestra algunas cosas que podrÃ­a hacer con las Ã³rdenes \ci{makebox} y \ci{framebox}.

\begin{example}
\makebox[\textwidth]{%
    c e n t r a d o}\par
\makebox[\textwidth][s]{%
    e x p a n d i d o}\par
\framebox[1.1\width]{A la medida} \par
\framebox[0.8\width][r]{Muy ancho} \par
\framebox[1cm][l]{Y otro tambiÃ©n...} 
Â¿Puede leer esto?
\end{example}

Ahora que controlamos lo horizontal, el siguiente paso obvio es ir por la vertical.\footnote{El control total sÃ³lo se obtiene controlando tanto lo horizontal como lo vertical\ldots}

La orden
\begin{lscommand}
\ci{raisebox}\verb|{|\emph{sube}\verb|}[|\emph{extiende-sobre-lÃ­nea-base}\verb|][|\emph{extiende-bajo-lÃ­nea-base}\verb|]{|\emph{texto}\verb|}|
\end{lscommand}
le permite definir las propiedades verticales de una caja. Puede usar \ci{width}, \ci{height}, \ci{depth} y \ci{totalheight} en los tres primeros parÃ¡mtros, para afectar al tamaÃ±o de la caja dentro del argumento \emph{texto}.


\begin{example}
\raisebox{0pt}[0pt][0pt]{\Large%
\textbf{Aaaa\raisebox{-0.3ex}{a}%
\raisebox{-0.7ex}{aa}%
\raisebox{-1.2ex}{h}%
\raisebox{-2.2ex}{h}%
\raisebox{-4.5ex}{h}}}
---gritÃ³, pero ni siquiera el mÃ¡s
prÃ³ximo se dio cuenta de que 
algo terrible le habÃ­a sucedido...
\end{example}

\section{LÃ­neas y puntales}
\label{sec:rule}

Hace unas pÃ¡ginas puede haber visto la orden

\begin{lscommand}
\ci{rule}\verb|[|\emph{sube}\verb|]{|\emph{anchura}\verb|}{|\emph{altura}\verb|}|
\end{lscommand}

Usada normalmente produce simplemente una caja negra.

\begin{example}
\rule{3mm}{.1pt}%
\rule[-1mm]{5mm}{1cm}%
\rule{3mm}{.1pt}%
\rule[1mm]{1cm}{5mm}%
\rule{3mm}{.1pt}
\end{example}

Esto es Ãºtil para dibujar lÃ­neas verticales y horizontales. La lÃ­nea de la pÃ¡gina del tÃ­tulo, por ejemplo, ha sido creada con una orden \ci{rule}.

Un caso especial es una lÃ­nea sin anchura pero con cierta altura.  En composiciÃ³n profesional se llama \wi{puntal}.  Se usa para garantizar que un elemento de una pÃ¡gina tiene una cierta altura mÃ­nima.  PodrÃ­a usarlo en un entorno \texttt{tabular} para asegurarse de que una fila tiene cierta altura mÃ­nima.

\begin{example}
\begin{tabular}{|c|}
\hline
\rule{1pt}{4ex}Costeru...\\
\hline
\rule{0pt}{4ex}Puntal\\
\hline
\end{tabular}
\end{example}

\bigskip
{\flushright Fin.\par}

% Local Variables:
% TeX-master: "lshort2e"
% mode: latex
% mode: flyspell
% End:</pre></body></html>