Este proceso constará en general de los pasos que se describen a continuación: traer el nuevo paquete, extraer los ficheros de estilo si es necesario, colocarlos en el sitio apropiado y rehacer la base de datos.
Normalmente los paquetes nuevos se encontrarán en el CTAN, aunque en ocasiones estarán en otros lugares. En general, se debe descargar el directorio completo del paquete o el archivo comprimido que lo contiene. Esto no es necesario cuando se quiere descargar un archivo de estilo de uno de los directorios misc, que tienen contribuciones al CTAN en forma de archivos de estilo individuales completos en sí mismos. En este caso bastaría con descargar el archivo individual correspondiente.
Un paquete pequeño puede estar compuesto únicamente de un archivo de
estilo .sty
(por ejemplo paquete.sty
) con las
instrucciones de uso incluidas como comentarios en el mismo, en un
archivo separado o bien en un archivo README.
Sin embargo, es más frecuente encontrar el paquete en forma de un
par de archivos paquete.ins
y paquete.dtx
, escritos para
ser utilizados con el sistema doc de LaTeX. Los archivos de
estilo deben extraerse de éstos. Si hay un README adicional
debe leerse éste previamente.
.dtx
y .ins
En el sistema doc el manual de usuario y el código del paquete
documentado se encuentran en el archivo .dtx
, mientras que el
archivo .ins
contiene instrucciones LaTeX acerca de la
extracción del código del archivo .dtx
. Para extraer los
distintos archivos debe seguirse el siguiente procedimiento:
paquete.ins
. Esto extraerá uno o más
archivos (normalmente un paquete.sty
, pero dependiendo del
paquete pueden generarse más archivos).paquete.dtx
para obtener el manual de
usuario y posiblemente una versión comentada del código del
paquete.paquete.dtx
. Ésto resolverá
las referencias y generará una tabla de materias si el archivo
original lo pide así.
makeindex -s ind.ist paquete
y correr de nuevo LaTeX.paquete.dvi
..dtx
. En este caso es recomendable procesarlo después
de hacer lo anterior, ya que puede necesitar elementos del paquete
que está describiendo.
En primer lugar TeX buscará archivos en el directorio actual. Salvo que se trate de una prueba o de archivos muy relacionados con el documento que se está preparando, es conveniente colocarlos en un lugar de acceso más general.
El lugar exacto en el que deben colocarse los nuevos archivos de estilo depende de la distribución TeX que se esté utilizando. Asumiendo que se utiliza una de las distribuciones modernas que son conformes al TDS (por ejemplo, TeX Live, teTeX, fpTeX o mikTeX) hay una serie de normas que deben tenerse en cuenta
texlive (win): c:\texmf-local\
texlive (unix): /usr/local/share/texmf/
fpTeX: c:\fptex\texmf.local\
mikTeX: c:\localtexmf\
que puede cambiar dependiendo de las opciones dadas durante la
instalación o de las peculiaridades de la distribución
concreta. Por simplicidad en lo que sigue le denominaremos
$TEXMFLOCAL
.
.sty, .cls o .fd: $TEXMFLOCAL/tex/latex/<paquete>/
.dvi, .ps o .pdf: $TEXMFLOCAL/doc/latex/<paquete>/
.bib: $TEXMFLOCAL/doc/bibtex/bib
.bst: $TEXMFLOCAL/doc/bibtex/bst
.tfm: $TEXMFLOCAL/fonts/tfm/<suministrador>/<fuente>/
.vf: $TEXMFLOCAL/fonts/vf/<suministrador>/<fuente>/
.afm: $TEXMFLOCAL/fonts/afm/<suministrador>/<fuente>/
.pfb: $TEXMFLOCAL/fonts/type1/<suministrador>/<fuente>/
.ttf: $TEXMFLOCAL/fonts/truetype/<suministrador>/<fuente>/
donde paquete, fuente y suministrador dependen de
cada archivo individual de cada paquete.
La rama personal suele estar en un subdirectorio texmf
del
directorio de usuario, pero puede cambiar. En ella también es
necesario reproducir la estructura de directorios de la rama
principal. Dependiendo de la distribución y/o de las opciones de
configuración puede ser necesario rehacer la base de datos
cuando se añaden o quitan elementos.
A menudo la rama local del árbol global no está activada por omisión y es necesario activarla:
En primer lugar es necesario
localizar el archivo de configuración texmf.conf
. Éste
puede estar en /etc/texmf/texmf.conf
,
/etc/texmf.conf
o
/usr/share/texmf/web2c/texmf.conf
, dependiendo de la
distribución.
Leer el principio del fichero, ya que puede haber sido generado
automáticamente. Si es así, seguir las instrucciones que allí
aparezcan.
En algunos casos puede ser necesario borrar la palabra
original
en la primera línea del archivo si está allí.
Jugando adecuadamente con texmf.cnf
, donde están los
caminos de búsqueda, se configura sin problemas. Para activar
una línea debe quitarse el carácter de comentario % al principio
de la línea, para desactivarla añadir el carácter % al principio
de la línea. Cuando se activa una línea debe desactivarse la que
antes hacía esa función, si la había. Por ejemplo, si se tienen
los archivos de la distribución bajo /usr/share/texmf/
,
archivos locales bajo /usr/share/local.texmf
y archivos
personales bajo ~/texmf
, las líneas del texmf.cnf
que lo harían son
TEXMFMAIN = /usr/share/texmf
para la rama principal, que viene activada por omisión. Para las
ramas local y personal se añadiría (o se quitaría el comentario
de la misma) una línea del tipo
TEXMFLOCAL = /usr/local/share/texmf
HOMETEXMF = $HOME/texmf
en el caso de que no estuviera o estuviera comentada. Finalmente
se seleccionaría
TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN}
que las junta todas. Como se ha dicho antes, en la estructura de
las ramas local y personal debe clonarse la estructura de la
rama principal y como se dice en la sección siguiente debe
correrse texhash
(o mktexlsr
) después de hacer los
cambios para rehacer la base de datos de archivos. Para la rama
personal puede ser necesario rehacer la base de datos como
usuario.
El fichero de configuración está extensamente comentado con explicaciones de la función de cada una de las posibles líneas.
El paso final consiste en decirle a LaTeX que hay una serie de nuevos archivos que debe ser capaz de encontrar. En la mayor parte de los sistemas LaTeX libres recientes se mantiene una base de datos de archivos instalados, para posibilitar una búsqueda más rápida. En estos sistemas es necesario actualizar esta base de datos cada vez que se instalan nuevos archivos, mediante los programas suministrados con este fin en la distribución.
Las distribuciones TeX/LaTeX para windows suelen tener, en su gestor, una opción para rehacer las bases de datos. En caso contrario, es necesario hacerlo manualmente,
Por ejemplo, para hacerlo manualmente para TeXLive, teTeX, fpTeX sería necesario correr
texhash
En cualquier distribución web2c reciente texhash
debiera
funcionar. Si no es así, probar con
mktexlsr
En una distribución MikTeX anterior a la v2.0, hacer con los menús desplegables:
Start-> Programs-> MikTeX-> Maintenance-> Refresh filename database
o en una ventana DOS
initexmf -update-fndb
En una distribución MikTeX mayor o igual que la v2.0, hacer con
los menúes desplegables
Start-> Programs-> MikTeX 2-> MikTeX Options
y pulsar el botón "Update filename database".
La respuesta más general sería mirando los archivos de configuración, pero si se trata de un TeX que utiliza las rutinas kpathsearch de Karl Berry, es mucho más sencillo
% kpsepath tex
responderá con la lista de los directorios en los que busca. Una
doble barra (//
) indica que se busca recursivamente en los
subdirectorios del que pone. Es decir, que si los paquetes
particulares están en ~/texmf/tex/latex/lo-que-sea
, o en
~/texmf/tex/mas-paquetes
los encontrará. Para buscar un
fichero concreto
% kpsewhich fichero
Pues depende de la fuente que se quiera usar. Normalmente hay
paquetes de estilo que lo hacen automáticamente. Por ejemplo, si
pretendes usar la familia de Times, usa el paquete times
poniendo en el preámbulo \usepackage{times}
. Otra familia
disponible es lucida-bright, que puedes cargar con el paquete
lucidabr. Si miras estos archivos (times.sty
o
lucidabr.sty
) puedes aprender la forma de usar una fuente, y
copiarlo para otros tipos.
Hay muchos tipos de letras ya preparados así: times
,
helvetica
(arial
está casi clonado de esta), courier, la
letra gótica se llama oldgerm
, griego...
Un segundo paso es ir al CTAN para ver si alguien ha preparado un paquete con el tipo deseado.
En el peor de los casos en el que no esté preparado, puede crearse
manualmente un paquete a partir de los tipos originales en formato
Type-1, aunque no es un proceso inmediato. Más información en
CTAN:info/Type1fonts/fontinstallationguide/fontinstallationguide.pdf
.
A veces se piden tipos de letra que no están disponibles directamente en LaTeX como Arial. El tipo de letra Arial es TrueType, y este formato no es soportado directamente por LaTeX. Desde pdflatex sí es posible usar tipos TrueType, pero antes hay que crear unos cuantos archivos auxiliares que necesita TeX. El proceso no es sencillo. Está descrito en http://www.radamir.com/tex/ttf-tex.htm
Recientemente ha aparecido otro documento que explica cómo convertir
los tipos TrueType en tipos PostScript, y cómo usar estos
tipos convertidos desde latex->dvips
. El documento se encuentra
disponible en CTAN:info/TrueType/
y está orientado a un
sistema tetex, por lo que es posible que no funcione bajo
windows/miktex.
El tipo de letra helvetica es muy parecido al tipo Arial y sí está disponible bajo LaTeX. Basta con añadir en el preámbulo del documento
\renewcommand{\rmdefault}{phv}
\renewcommand{\sfdefault}{phv}
pero si hay fórmulas matemáticas éstas seguirían utilizando los
tipos computer modern por lo que quedarán feas en medio del
texto en helvetica.
Pueden incluirse subdocumentos TeX/LaTeX en un documento
mediante las órdenes \input
e
\include
. \input{otro_documento}
lo incluirá en el lugar
en el que se introduce la orden, mientras que
\include{otro_documento}
siempre abrirá una página nueva al
incluir el documento. Sin embargo, \include
permite incluir
documentos de forma selectiva mediante la orden \includeonly
,
mientras que \input
no lo permite. Así, la orden
\includeonly{doca,docc}
en el preámbulo hará que se incluyan
únicamente los documentos doca
y docc
, a pesar de que
también docb
tenga un \include
,
...
\includeonly{doca,docc}
\begin{document}
...
\include{doca}
\include{docb}
\include{docc}
...
Cuando se usa spanish-babel basta con poner en el preámbulo, después de haberse cargado babel
\addto{\captionsspanish}{\def\chaptername{}}
y queda eliminada la palabra Capítulo. Si no se usa babel basta
con poner en el preámbulo \def\chaptername{}
. Realmente
esto es un caso particular de cambio de literales, que se trata en
las secciones
literales y
Cambio de nombre de secciones
Hay dos formas, redefiniendo las órdenes que hacen las cabeceras, o
utilizando un paquete hecho que facilite el trabajo. Un paquete que
permite hacer cosas muy elaboradas con las cabeceras de los
capítulos es titlesec, disponible en
CTAN:macros/latex/contrib/supported/titlesec
Por ejemplo, suponiendo que se trate de una lista de símbolos,
\section*{Lista de símbolos}
\addcontentsline{toc}{section}{Lista de símbolos}
Lo mismo para otros elementos (subsección,...).
\subsubsubsection
. \subsubsubsection
no existe, en los estilos estándar es
\paragraph
quien hace ese papel.
Si se quiere controlar cuándo se quiere o no este comportamiento en cada página con este problema, se puede definir una nueva orden,
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
y teclear \clearemptydoublepage
cada vez que quieras
continuar el texto en una pagina impar.
Cuando se quiere que esto ocurra automáticamente hay que redefinir
la orden \cleardoublepage
como sugiere la documentación del paquete
fancyhdr,
\makeatletter
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\vspace*{\fill}
\thispagestyle{empty}
\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother
Cuando se utiliza el paquete titlesec de Javier Bezos para
definir formatos propios de cabeceras y pies de pagina, la opción de
paquete clearempty
ya hace el trabajo:
\usepackage[<tus_opciones>,clearempty]{titlesec}
Otra posibilidad es utilizar el paquete nextpage,
\usepackage{nextpage}
...
\cleartooddpage[\thispagestyle{empty}]
\chapter{...}
La opción \pagestyle{empty}
quitará los encabezados y pies de
todas las páginas posteriores a aquélla en la que se invoca. La
opción \thispagestyle{empty}
quitará los encabezados y los pies
de página en la página donde se invoca esta orden.
Cuando lo que se quiere es eliminar únicamente el número de página,
en general no es conveniente utilizar
\renewcommand{\thepage}{}
porque eso suprime todos los
números de página, incluidos los de los índices o las
remisiones. Por tanto, hay que evitarla siempre que se pueda y optar
por soluciones mejor construidas y específicas a cada caso, como
utilizar una definición personal de cabeceras que pueda activarse a
voluntad para ciertas páginas.
La forma más habitual es utilizar el paquete fancyhdr. Por ejemplo, con pies
\documentclass{book}
\usepackage{fancyhdr}
\lfoot{titulo a la izquierda}
\rfoot{titulo a la derecha}
\cfoot{titulo al centro}
\pagestyle{fancy}
\begin{document}
\chapter{A title}
\thispagestyle{fancy} %opcional
\newpage
\section{a section}
\end{document}
pero titlesec también permite un amplio control del estilo de
página.
Para LaTeX si se ha cargado el paquete babel basta con la orden
\hyphenrules{nohyphenation}
Por supuesto el patrón nohyphenation
debe de estar activado en
language.dat
y el formato creado con él (Véanse
¿Cómo activo el patrón de partición de palabras para el castellano? y
¿Cómo rehacer los formatos?).
Para TeX hay que hacer las cosas de otra forma. Una forma de conseguir que TeX no corte casi nunca, (y así de paso se evita que corte mal) es poner:
\pretolerance=2000
\tolerance=3000
al principio. Si se quiere que ésto ocurra únicamente en un párrafo
o en una región, debe encerrarse lo anterior y la región deseada
entre llaves,
{\pretolerance=2000
\tolerance=3000
el párrafo o región
}
Ésto puede utilizarse también para LaTeX
Quizás la forma más cómoda sea utilizar el paquete geometry,
que se encuentra disponible en
CTAN:macros/latex/contrib/supported/geometry
. Por ejemplo
\documentclass[a4paper, 10pt]{article}
\usepackage[a4paper,left=3cm,right=2cm]{geometry}
crea una página A4 con margen de 3cm a la izquierda y 2cm a la
derecha, sin más complicaciones.
Otra cosa mucho más complicada es cómo cambiar los márgenes dentro
de un documento, en vez de hacerlo en el preámbulo como lo hace el
paquete geometry. Un caso especial se tiene cuando se quiere
alargar un poco una página para que quepa un poco más de texto y así
evitar situaciones poco estéticas. Para ésto, LaTeX2e proporciona
la orden \enlargethispage{distancia}
donde se aumenta el
tamaño vertical de la página en la distancia especificada.
A pesar de esa dificultad, puede utilizarse el paquete chngpage, que proporciona órdenes para cambiar el aspecto de la página en el medio de un documento (por ejemplo, hacerla más estrecha o más ancha, más corta o más larga, e incluso desplazarla horizontal o verticalmente), aunque no permite cambios dentro de un párrafo.
Cuando se quiere sacar la totalidad del documento apaisada, hay que
decirle a TeX que las dimensiones horizontal y vertical están
cambiadas, comenzando el documento con la opción landscape
,
algo del tipo
\documentclass[landscape,a4]{article}
donde la clase de documento puede ser también cualquier otra como
slides
. Esto intercambia las distancias horizontal y vertical,
pero no rota el documento final para que se ajuste a la posición de
la hoja. Para ello se puede utilizar el dvips, por ejemplo en
la forma siguiente
dvips -ta4 -tlandscape tu_archivo -o tu_archivo.ps
donde -tlandscape
gira la salida. La opción -ta4
es a
menudo conveniente si se utiliza papel a4, para que el giro se
haga de forma adecuada.
Para ajustar el espaciado entre líneas en un documento LaTeX2e se
recomienda utilizar el paquete setspace, que se cargará en el
preámbulo. Las órdenes \singlespacing
, \onehalfspacing
, y
\doublespacing
colocadas en el preámbulo establecen el
espaciado global del documento. Pueden establecerse valores
intermedios mediante la orden \setstretch{baselinestretch}
en
el preámbulo. El valor por omisión es espaciado simple. Asimismo se
definen tres entornos con los mismos nombres que las órdenes
anteriores para cambios del espaciado en regiones del documento
(respecto del espaciado estándar en ese momento, doublespacing
empezará un entorno de espaciado doble que el espaciado en ese
momento, si es doble lo hará aún mayor).
Para un documento LaTeX209 puede utilizarse el paquete doublespace.
La forma más cómoda de controlar el espaciado entre párrafos es mediante el paquete parskip.
Una excelente página (en inglés) sobre numeraciones, http://www.iam.ubc.ca/~newbury/tex/numbering.html, debida a Peter Newbury.
La distancia entre los elementos es la suma de los valores de
\parsep
(que es también la distancia entre párrafos dentro
de un mismo elemento) e \itemsep
. Si sólo se quiere cambiar
la distancia entre elementos pero no entre párrafos de un mismo
elemento, basta con dar un nuevo valor a la distancia
\itemsep
.
Es un espacio elástico, es decir, además de con
\setlength{\itemsep}{1cm}
se puede definir con algo como
\itemsep= 4pt plus 2pt minus 1pt
donde 4pt sería el espacio normal, 2pt lo máximo que podría
estirarse y 1pt lo máximo que podría encogerse.
El valor de \itemsep
se restablece con cada
\begin{itemize}
(o la lista de que se trate), y se hace
igual a \parsep
, por lo que hay que modificarlo dentro
de la lista, por ejemplo.
{\topsep=-15pt \parsep=-15pt \partopsep=-15pt
\begin{enumerate}\itemsep=-5pt
\item{ Pruebas de interespaciado}
\item{ Pruebas de interpaginado}
\item{ Pruebas de espaciado}
\end{enumerate}}
Puede hacerse que la separación sea nula, mediante
\setlength{\itemsep}{-\parsep}
Hacer el cambio para todas las listas es algo más complejo, pero una
forma de hacerlo sería redefinir \itemize
(y lo mismo para
las demás listas) en la forma
\let\olditemize\itemize
\def\itemize{\olditemize\itemsep=0pt }
donde en este caso se ha puesto un valor de 0pt a \itemsep
en todas las listas enumeradas.
Por ejemplo, para que escriba los elementos de primer nivel con números como 1 y los de segundo nivel con números en la forma 1.1
\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumi .\theenumii .}
Si algún paquete que estés usando redefine los \theenum
, como
el babel-spanish, entonces debes asegurate que LaTeX elija
tus parámetros colocando las órdenes anteriores entre:
\AtBeginDocument{%
comandos aqui..
}
Dentro de un itemize, puede especificarse en cada \item
un
parámetro opcional, que es el símbolo que se mostrará (en lugar del
topo por defecto), por ejemplo, \item[$\odot$]
, y si se quieren
cambiar todos, con el mismo ejemplo,
\renewcommand{\item}{\item[$\odot$]}
o, mediante el paquete paralist,
\usepackage{paralist}
...
\begin{itemize}[$\star$]
\item ...
\item ...
\end{itemize}
También puede utilizarse el paquete pifont, así:
\usepackage{pifont}
\begin{Pilist}{pzd}{248}
\item bla
\item bla bla
\item bla
\end{Pilist}
El entorno Pilist es análogo a itemize, pero en lugar del bullet usa el caracter que se le pida de la fuente que se le pida. En el ejemplo anterior, se usa el carácter con código 248 de la fuente pzd que tiene gran cantidad de simbolos adecuados para itemize.
Con el paquete enumitem, en CTAN:macros/latex/contrib/bezos/
.
Entre las mdwtools hay un paquete llamado mdwlist que permite hacer eso:
\begin{enumerate}
\item ...
\item ...
\suspend{enumerate}
Texto...
\resume{enumerate}
\item ...
\item ...
\end{enumerate}
Disponible en CTAN:macros/latex/contrib/supported/mdwtools/
Para crear listas numeradas o por elementos de la forma
1. Primer elemento 2. Segundo elemento 3. Tercer elemento
4. Cuarto elemento 5. Quinto elemento 6. Sexto elemento
puede utilizarse el paquete paralist (disponible en
CTAN:macros/latex/contrib/supported/paralist
) o bien el
paquete multicol. También existe el paquete multienumerate
(CTAN:macros/latex/contrib/supported/multenum
) y el entorno
shortenumerate
del paquete shortlst
(CTAN:macros/latex/contrib/supported/shortlst
) destinado a
listas de elementos cortos.
Sí, existen varias, por ejemplo
Modo BibTeX para emacs. Normalmente viene incluido con emacs, pero también se puede obtener de su página principal http://www.ida.ing.tu-bs.de/people/dirk/bibtex/
ambos excelentes y disponibles en
CTAN:support/bibdb
con su página base en
http://www.mackichan.com/BibDB/default.htm
disponible en CTAN:bibtex/utils/bibtool/
con su
página principal en
http://bibtool.sourceforge.net/
http://jabref.sourceforge.net/ es una interfaz gráfica escrita en java para manejar bases de datos bibliográficas. Necesita Java >= 1.4.2
La forma más cómoda es utilizar el paquete tocbibind, que se
encuentra disponible en
CTAN:macros/latex/contrib/supported/tocbibind
y en la mayor
parte de las distribuciones, pero también puede hacerse a mano con
por ejemplo \addcontentsline{toc}{chapter}{\bibname}
en la
definición correspondiente.
Con el paquete minitoc
Puede hacerse usando el paquete chapterbib. Para hacerlo de
esta forma debe estructurarse el documento en un archivo raíz desde
el que se incluyen las distintas secciones que están en archivos
separados del raíz, incluir al final de cada uno de éstos las
órdenes de bibliografía y procesar con bibtex los .aux de cada
una de estas partes. Si además se quiere que no haya un salto de
página al comenzar la bibliografía en cada capítulo, debe utilizarse
la opción sectionbib
.
Otro paquete que permite una cosa similar es bibunits
Los paquetes multibib y bibtopic permiten dividir una bibliografía global en partes separadas para los distintos temas. El primero requiere el uso de órdenes específicas para las citas bibliográficas, mientras que el segundo requiere dividir el archivo de bibliografía.
Mediante algo del tipo
\cite[pág.~29]{gar98}
donde gar98
sería la etiqueta BibTeX para la cita
deseada.
url
con BibTeX? En los estilos bibliográficos estándar de BibTeX no hay un
tipo para las url
, aunque es posible que en una futura versión
de BibTeX sí lo haya.
En tanto esa versión aparece la forma más sencilla consiste en utilizar el campo howpublished del tipo misc. Una entrada de ese tipo tendría la forma
@misc{...,
...,
howpublished = "\url{http://...}"
}
También puede ocurrir que un artículo, informe o incluso libro se
encuentre disponible también en la web. En este caso se podría
hacer algo del tipo
@techreport{...,
...,
note = "También disponible como \url{http://...}"
}
donde se supone que se ha utilizado el paquete url, disponible
en CTAN:macros/latex/contrib/other/misc/url.sty/
, lo que es
muy recomendable para estas referencias por diversas razones.
O ¿cómo puedo hacer que aparezca una citación bibliográfica múltiple
consecutiva, por ejemplo, [1,2,3,4,5] como [1-5]? El paquete
cite, disponible en
CTAN:macros/latex/contrib/supported/cite
y en TeXLive
permite hacer precisamente eso.
Para hacer referencias cruzadas entre documentos se puede usar el
paquete xr, de David Carlisle, disponible en las distribuciones
habituales y en
CTAN:macros/latex209/contrib/misc/xr.sty
. Su uso es como
sigue,
...
\usepackage{xr} %Referencias a otros documentos
...
\externaldocument{miotrodocumento}
...
Una vez hecho esto las referencias se declaran como si de un único
documento se tratase.
En general, con
\setcounter{tocdepth}{X}
en el preámbulo se controla hasta que nivel se incluirá en el
índice general, siendo X
un número. Con 3 se incluye hasta
\subsubsection
, con 2 hasta \subsection
. Ésto
permite cambiar el valor definido por omisión en el estilo
utilizado.
Para las listas de figuras y tablas la separación se define en
\l@figure}
o \l@table
, por ejemplo book.cls lo
hace así para las figuras
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
En un estilo o en el preámbulo entre
makeatletter/makeatother
pueden redefinirse sus valores
cambiando el último número. Por ejemplo, en el preámbulo
\makeatletter
\renewcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{3.3em}}
\renewcommand*{\l@table}{\@dottedtocline{1}{1.5em}{2.8em}}
\makeatother
Para las entradas de la tabla de materias sería necesario
cambiar los valores de \l@section
, \l@subsection
,
\l@subsubsection
, \l@paragraph
o \l@subparagraph
de una forma análoga. Para los capítulos la cosa es más
problemática porque se cambian más cosas.
El paquete tocloft permite controlar detalles del diseño tipográfico de las tablas de materias y de las listas de figuras y tablas, aunque su integración con otros paquetes como titlesec no está suficientemente probada.
Hay dos formas de dibujar en TeX, mediante el uso de funciones primitivas TeX bien directamente (muy duro) o a través de alguno de los paquetes de más alto nivel que proveen de funciones que internamente utilizan esas primitivas, pero que a un usuario se le representan como funciones de dibujo normales en un cierto lenguaje, o bien incluyendo gráficos realizados mediante aplicaciones externas, como es el caso de gráficos en postscript encapsulado o en mapa de bits.
El problema en este segundo caso es que los datos del gráfico deben
darse en el documento mediante órdenes \special
-- Véase
¿Qué son los \special -- y que éstas órdenes son en general
distintas para los distintos conversores (drivers) a los formatos de
impresión o visualización. Para evitar al usuario tener que utilizar
directamente los \special
se pueden utilizar paquetes de más alto
nivel que, dependiendo de los conversores transforman sus órdenes a
los \special
correspondientes. Si se quiere obtener el resultado
final en pdf hay una serie de limitaciones que hay que tener en
cuenta, véase
¿Cómo obtengo un documento PDF a partir de mi documento TeX?
Para ello se puede utilizar el paquete graphics, que está entre
los paquetes adicionales del LaTeX2e (disponible en
CTAN:macros/latex/required/graphics/
). Dependiendo de las
opciones deseadas se le llama como graphics
(menos potente) o
graphicx
(más potente y recomendado). Un paquete más antiguo es
psfig que en la práctica ha sido sustituido en LaTeX2e por
graphics que es el paquete oficial de introducción de gráficos
externos en LaTeX2e. Sin embargo, si se usa LaTeX 209 será
necesario usar psfig (disponible en CTAN:graphics/psfig
)
También es necesario tener un conversor de DVI al lenguaje de
impresora que soporte esos \special
, lo que limita los formatos
gráficos soportados. En particular es especialmente interesante que
soporten el formato .eps
(postscript encapsulado), lo que hacen
el dvips y los conversores que vienen con OzTeX o
TeXtures. La mayor parte de los visualizadores de DVI no
mostrarán correctamente estas figuras, sino sólo su espacio. En
cualquier caso, es conveniente leer primero la documentación del
paquete graphics o alguna de las referencias que se dan a
continuación.
Existe en el CTAN
documentación muy interesante acerca de este
tema. El documento de Anik K. Goel (CTAN:info/figsinltx.ps
)
trata de diferentes formas de generar figuras y de incluirlas con
psfig para LaTeX 209. El documento de Keith Reckdahl
(CTAN:info/epslatex.pdf
) está más dirigido al trabajo en
LaTeX2e y a las figuras .eps
. Una referencia excelente sobre el
tema es el LaTeX Graphics Companion, de M. Goossens, S. Rahtz y
F. Mittelbach, véase la sección
Libros en otros idiomas.
Existen una serie de formas de dibujar con TeX en vez de importar archivos externos. Desde el simple uso del entorno picture, incluso con mejoras como las proporcionadas por epic a dibujos sofisticados (aunque lentos) con las macros PicTeX. Dependiendo de lo que se quiere hacer alguno de los siguientes sistemas puede ser el más útil:
Disponible en CTAN:graphics/pstricks
, que da acceso a la
potencia de postscript desde TeX mediante un uso sofisticado
de los \special
. Necesita un conversor a postscript bueno
(como p.ej. dvips), está bien documentado y da buenos resultados.
pgf (portable graphics format) es un paquete de macros TeX para crear dibujos. Su uso recuerda a pstricks y, aunque es menos potente que éste, tiene la ventaja de que es compatible tanto con dvips como con pdfTeX.
Toda la potencia de METAFONT, pero generando figuras postscript en vez de tipos. Para más información en castellano sobre metapost puede consultarse la página http://w3.mecanica.upm.es/metapost y para ver algunos ejemplos de lo que se puede hacer con metapost, pueden seguirse los enlaces citados en http://ltx.blogspot.com/2003/09/ms-recursos-metapost.html.
A partir de la versión 3.7.1 del paquete gráfico gnuplot
éste ya permite exportar sus resultados en formato
metapost. gnuplot está disponible en
CTAN:graphics/gnuplot
.
pdfLaTeX también trata metapost nativamente mediante
el uso de \convertMPtoPDF
. La sintaxis es
\convertMPtoPDF {nombre} {escala x} {escala y}
Si el nombre del gráfico incluido tiene la extensión .mps
\includegraphics
llama internamente a esta orden de forma
transparente al usuario y no es necesario incluirla de forma
explícita.
El gráfico MP así incluido se puede manipular sin problema con los comandos habituales de graphicx: rotatebox, resizebox, scalebox, etc...
Los archivos metapost pueden editarse con un editor de texto y conocimiento del lenguaje metapost, pero también está disponible el editor gráfico Metagraf para METAPOST, que se encuentra en fase avanzada de desarrollo. Está escrito en Java y por tanto funciona bajo distintos sistemas operativos. Se encuentra disponible en la misma página anterior, http://w3.mecanica.upm.es/metapost.
El programa pstoedit permite pasar de postscript a otros formatos editables, entre ellos metapost, aunque es posible que en el cambio se pierdan elementos del dibujo original.
Disponible en CTAN:graphics/mfpic
. Este paquete genera
código METAFONT a partir de macros TeX como las habituales. No da toda la
potencia de METAFONT, pero es bastante más cómodo.
de Eitan Gurari. Disponible en CTAN:macros/generic
. Un
paquete de macros del tipo de PicTeX, pero mucho más
manejable y menos necesitado de recursos de ordenador.
En el mundo de los gráficos por ordenador existen básicamente dos tipos de formatos: los "bitmap" (al que pertenecen jpeg, PNG, GIF, y otros específicos de programas de retoque fotográfico como el Gimp, el Adobe Photoshop o el Corel Paint) y los comúnmente llamados "vectoriales" (que son los generados por programas de diseño gráfico como Corel Draw, Visio, o Xfig).
La diferencia básica entre ambos es que los "bitmaps" son en esencia una rejilla de puntos, con la especificación del color en que debe ser pintado cada uno de los puntos, por lo que un programa que quiera mostrar un gráfico de estos en pantalla simplemente deberá pintar los pixels en los colores especificados en el fichero.
Los "vectoriales" en cambio contienen más bien una lista de "objetos matemáticos" como rectas, arcos de circunferencia o curvas de bezier. Para poder mostrar un gráfico vectorial en pantalla, el programa debe hacer los cálculos pertinentes para averiguar qué pixels debe pintar (siguiendo la ecuación de la recta o de la curva en cuestión).
Los bitmaps son adecuados para almacenar fotografías, pues es casi imposible definir estas a base de primitivas matemáticas y resulta mucho más simple muestrear los colores de la misma en un conjunto de puntos.
Los vectoriales son adecuados para almacenar dibujos de tipo geométrico, como la mayoría de las ilustraciones técnicas, y también para almacenar tipos de letras escalables.
Y aqui llegamos al meollo. Un bitmap básicamente no puede ser reescalado a menos que inventemos información. Supongamos un bitmap con un tamaño de 100x100 pixels. ¿Cuánto es esto en milímetros? Resulta que la respuesta depende del dispositivo que vaya a mostrar el bitmap. Así en un monitor que funcione a 320x200, este bitmap ocupará más de 1/4 de la pantalla. Sin embargo en uno que funcione a 1024x768 será póco más de 1/10. Y en una impresora láser será apenas visible, pues éstas suelen trabajar a una resolución de 300ppp (ó 600ppp) por lo que el gráfico en cuestión ocuparía un tercio de pulgada (o un sexto). Si queremos aumentarlo hasta que ocupe toda una página, no queda más remedio que inventarse todos los pixels que faltan. La forma más sencilla de hacer esto es repetir N veces cada uno de los pixels de la imagen original. El efecto es que cada uno de los pixels de la imagen original es ahora un cuadrado bastante visible, la imagen toma aspecto de "tablero de ajedrez".
Los vectoriales no tienen este problema, ya que el fichero contiene cosas como: "una recta que va desde el punto 0,0 hasta el punto 1cm,1cm", pero no especifica el número de pixels necesarios para trazarla. Así, una pantalla puede trazar esta recta usando 100 pixels, mientras que una impresora puede necesitar 900. En todo caso, la ecuación de la recta contiene información necesaria para "inventar" todos los pixels intermedios y poder por tanto trazarla a cualquier resolución.
El PostScript (y el eps) admiten tanto gráficos vectoriales como bitmaps. Es la herramienta que genera el eps la que decide cuál de los dos usar. En caso de programas de retoque fotográfico, orientados a bitmaps, el eps que te generarán contendrá un bitmap, con los problemas de escalado ya comentados. En caso de programas orientados a diseño o dibujo técnico te generarán un eps "vectorial".
Usar un programa como Gimp para generar eps no es buena idea. para incluir un bitmap en el documento es preferible usar como formato jpeg y hacer uso de un programita llamado jpeg2ps disponible en CTAN. Tratar de exportar eps desde el Gimp sólo empora las cosas, porque a fin de cuentas el resultado no es vectorial, y además el tipo de eps que se genera ocupa muchísimo. El jpeg ocupa mucho menos y puede ser "incrustado" dentro de un eps sin convertirlo. Basta añadirle una cabecera adecuada (que es lo que hace jpeg2ps). Ahora bien, el inconveniente es que este tipo de jpeg incrustado sólo será impreso correctamente por una impresora PostScript de Nivel 2 (o por otra impresora soportada por Ghostscript).
hay que tener en cuenta que si se va a generar directamente pdf el .jpg puede utilizarse directamente sin necesidad de conversión.
El fichero generado mediante metapost o metagraf es válido tanto para dvips como para dvipdf (o para pdflatex). El único detalle a tener en cuenta es que metapost suele generar ficheros con extensión .1, .2, .3 ... y deben renombrarse a .mps para que el paquete graphicx reconozca el formato y los pille.
Un ejemplo de documento en el que se incluye una figura postscript externa utilizando el paquete graphicx sería (se supone que se utiliza el conversor dvips)
...
\usepackage[dvips]{graphicx}
...
\begin{figure}
\centering
\includegraphics[width=10cm]{imagen.eps}
\caption{Esto es una imagen}
\label{fig:prueba}
\end{figure}
...
que incluiría la figura imagen.eps
con una anchura de
10cm. Nótese que el que LaTeX haya procesado sin problemas no
implica que se vaya a ver con el visualizador ni que se vaya a
imprimir a una impresora, ya que para ello los conversores
correspondientes deben saber cómo hacerlo (P.ej., dvips sabe
como incluir figuras postscript y si se ha compilado con esa
opción algunos tipos de mapas de bits). Asimismo es conveniente usar
\centering
en vez del entorno center
, ya que este último
no es para centrar texto, sino para componer un poco aparte texto
centrado, con blancos antes y después. Si se usa center en un figure
habrá algo de espacio adicional que no debería estar
ahí. Además,\centering
se puede usar también como entorno, si
fuera necesario (\begin{centering}
...
\end{centering})
. Si se desea cambiar la separación con
centering
pueden cambiarse \textfloatsep
(para b y t) e
\intextsep
(para h) con \setlength
.
Para contener el gasto en espacio de disco que supone usar
PostScript, el paquete graphicx permite que las figuras que se
van a incluir estén comprimidas con gzip, puesto que entiende
los sufijos .eps.gz
y .ps.gz
. Para que LaTeX sepa el
tamaño de la figura que está en el archivo, debe existir otro con
extensión .eps.bb
o .ps.bb
con la Bounding Box
(medidas de la caja) de la figura en PostScript, que se puede
obtener de ese mismo archivo (es una de las primeras líneas) o
usando algún programa como psbb, distribuido con las utilidades
groff
de GNU
(
http://www.gnu.org).
En este caso la línea del \includegraphics...
anterior se
convertiría en
\includegraphics[0,0][101mm,50mm]{figura.pcx}
donde suponemos que el conversor soporta este formato. Se le ha
dicho específicamente el tamaño de la figura, ya que si no fuera
así, se obtendrían distintos resultados al imprimirla en impresoras
de distinta resolución.
Puede hacerse con el paquete graphicx
\includegraphics[page=6]{archivo}
o con el paquete pdfpages,
\usepackage{pdfpages}
...
\begin{document}
\includepdf[pages={3-7,9}]{/path/to/other.pdf}
\end{document}
El paquete eso-pic
te permite poner como fondo en la página
cualquier imagen.
Hay dos formas de conseguirlo, la primera consiste en poner la llamada a cada figura en la forma
\includegraphics[opciones_de_figura]{imagenes/nombre_de_figura}
y la segunda decirlo para todas añadiendo en el preámbulo la
información sobre el directorio, algo de la forma
\graphicspath{{imagenes/}}%directorio donde se almacenan las imágenes
y luego llamando a cada figura como
\includegraphics[opciones_de_figura]{nombre_de_figura}
PDFTeX -- véase la pregunta
¿Cómo obtengo un documento PDF a partir de mi documento TeX? -- no
permite la inclusión directa ni de código ni de figuras
PostScript. Pueden incluirse figuras en pdfTeX siempre que
éstas estén en alguno de los formatos jpeg, pdf ó png
(Véanse en el párrafo siguiente las extensiones por omisión que se
esperan para cada formato). Parece que el soporte para formato
TIFF se ha eliminado a partir de la versión 1.10a de
pdfTeX, por lo que aunque se vuelva a poner es preferible
utilizar alguno de los formatos anteriores. Existen utilidades para
convertir de PostScript encapsulado a
pdf y png (Distiller de Adobe
(
http://www.adobe.com) para pdf y ghostscript --
gs --
(
http://www.cs.wisc.edu/~ghost/index.html) para convertir a
pdf o a png). Para este último se tienen dos programas
que lo utilizan y hacen de intermediario con el usuario,
ps2pdf, incluido en ghostscript y epstopdf
(disponible en CTAN:usergrps/uktug/baskerville/epstopdf
, e
incluido al menos en TeXLive) para conversión directa entre los
formatos .eps
y .pdf
Aunque no de forma directa, el paquete tex4pdf, disponible en
CTAN:macros/latex/contrib/ps2pdf
permite incluir figuras y
código postscript (figuras pstricks y eps, cadenas psfrag,
reescalados postscript) en un documento procesado con pdflatex, pero
necesita versiones recientes de los paquetes preview,
ifpdf e ifvtex y del sistema TeX/LaTeX, así como
adaptar el documento LaTeX para su uso. También pueden utilizarse,
con mejor o peor fortuna otros mecanismos (Véase
¿Cómo obtengo un documento PDF a partir de mi documento TeX?)
Para incluir una figura en pdfTeX se deben seguir los mismos
pasos que para incluir una figura PostScript encapsulado en
LaTeX. Cuando la figura se tiene en dos formatos distintos, uno
para pdfLaTeX y otro para LaTeX/dvips, es recomendable omitir la
extensión del archivo (.ps
, .eps
, .ps.gz
,
.eps.gz
para PostScript y .jpg
, .tif
, .pdf
, o
.png
para pdfTeX). De esta forma el paquete
graphicx tomará el archivo adecuado según se esté usando
LaTeX o pdfLaTeX.
Esencialmente hay dos formas, mediante los paquetes psfrag y overpic,
permite sustituir cadenas de texto en el gráfico postscript por cadenas de texto TeX. Para ello la cadena de texto a sustituir debe estar en el archivo postscript de forma explícita utilizando alguno de los tipos postscript en vez de dibujada mediante líneas. Es decir, en el archivo postscript debe aparecer (cadena) donde cadena es la cadena de texto a sustituir. Esta cadena debe estar compuesta preferentemente de caracteres los alfanuméricos a-zA-Z0-9, aunque puede funcionar en algunos otros casos. Para usarlo se cargaría el paquete en el preámbulo:
\usepackage{psfrag}
y dentro de un begin-end que englobe la figura o utilizando
llaves (para que su efecto no se extienda a otras figuras salvo
que se quiera) se incluiría
\psfrag{cadena_original}{cadena_sustituta}
por cada una de las cadenas a sustituir.
Este sistema NO funciona directamente con pdfLaTeX salvo que se utilice vtex. Véase ¿Cómo obtengo un documento PDF a partir de mi documento TeX?. Del mismo modo, las cadenas sustituidas no se ven correctamente en los visores de dvi habituales, sino sólo cuando se ha pasado a postscript. Puede hacerse funcionar con pdfLaTeX de forma indirecta mediante el paquete ps4pdf o programas como tex2pdf.
El paquete overpic permite colocar cualquier tipo de texto sobre una figura e incluso figuras sobre figuras. Tiene dos formas de introducir las coordenadas, absolutas en % de la figura original, y relativas, en % de la figura reescalada. Asimismo cuenta con una excelente documentación.
\usepackage{overpic}
Para ello existen distintas opciones, mediante los paquetes
CTAN:macros/latex/contrib/other/misc/wrapfig.sty
)
Contiene wraptable, para hacer lo mismo con tablas.CTAN:macros/latex/contrib/other/floatflt/
)CTAN:macros/latex209/contrib/picins/
), que también
puede utilizarse con tablas.CTAN:macros/latex209/contrib/picinpar
)CTAN
. Para casos sencillos un simple
parbox
o una minipage
pueden hacer un buen trabajo.
Usando el entorno figure*
en vez de figure
, para que
LaTeX sepa que ese elemento flotante es de doble ancho. Si no, lo
considera de ancho normal, y la imagen que se mete dentro,
simplemente no cabe y se sale por el otro lado, ocultando el
texto de la otra columna.
Para ello puede utilizarse el paquete float,
(CTAN:macros/contrib/supported/float
, que añade nuevas
funcionalidades al comportamiento normal de los elementos flotantes
como figuras y tablas.
¿Por qué no?,
...
\usepackage{graphcix}
...
\begin{tabular}{ccc}
\includegraphics{fig1} &
\includegraphics{fig2} &
...
Es posible colocar en LaTeX dos figuras o tablas en paralelo, cada una con su pie, así como dos figuras juntas en posición arbitraria o superpuestas dentro de un entorno figure.
Dependiendo de lo que se quiera, puede hacerse bien mediante el paquete subfigure o mediante un entorno minipage (Véase epslatex.ps). subfigure permite numerar las figuras como (a), ... y tener un pie común a las subfiguras más pies individuales para cada subfigura y minipage mantiene los pies normales e independientes para cada figura. Por ejemplo, con minipage,
\usepackage{capt-of}
...
\begin{figure}
\begin{minipage}{.5\linewidth}
Figure
\caption{Foo}
\end{minipage}%
\begin{minipage}{.5\linewidth}
Table
\captionof{table}{Too}
\end{minipage}
\end{figure}
El uso del paquete capt-of (Véase "¿Puedo poner un pie en
tablas y figuras que no flotan?") sería necesario en este caso ya
que los dos elementos son distintos, una figura y una tabla, pero no
sería necesario si los dos fueran figuras o los dos tablas.
Si lo que se quiere es simplemente colocar dos figuras juntas además
de lo anterior sin \caption
puede utilizarse algo como
\setlength{\unitlengtth}{1cm}\begin{picture}(12,6)
\put(0,0){\includegraphics[width=6cm]{figura1.ps}}
\put(6,0){\includegraphics[width=6cm]{figura2.ps}}
\end{picture}
Así las figuras se colocan como uno quiera e incluso puede hacerse
que una figura se superponga sobre otra (como si fueran fotos en una
mesa).
A veces se desea colocar figuras y tablas en un lugar preciso y para
ello se prescinde de los entornos figure y table. Sin
embargo también se desea poder usar \caption
para no
perder la numeración y la referencia en la lista de figuras y
tablas.
Un equivalente a la orden \caption
llamado \captionof
puede ser utilizado fuera de entornos flotantes (figure y
table) si se hace uso del paquete capt-of. Su sintaxis es
\captionof{tipo}[pie corto]{pie largo}
donde el pie corto es el
opcional que irá a la tabla de figuras/tablas y el tipo es
figura/tabla.
La llamada en el documento sería del tipo
\centerline{\includegraphics{mi grafica}}
\captionof{figure}{Esta es mi grafica}
para una figura, mientras que para una tabla se puede usar algo del tipo:
\begin{center}
\begin{tabular}{*2l}\hline\hline
uno & dos\\
tres & cuatro\\\hline
\end{tabular}
\end{center}
\captionof{table}{Esto es una tabla} % se puede incluir dentro del entorno center.
Las clases article, report y book estándar son muy exigentes en cuanto a sus "consideraciones estéticas" para poner gráficos flotantes en una página. El caso es que ésto sólo es útil cuando hay pocos objetos flotantes, pero si hay muchos, esta exigencia es contraproducente. Lo que acaba pasando es que LaTeX no encuentra lugares adecuados para poner los gráficos y los acaba mandando todos al final o dando errores. Ante ésto hay varias alternativas.
Usar un especificador de posición más restrictivo, por
ejemplo; \begin{figure}[hbtp]
o con el paquete float
y la opción [H]
, que sitúa el entorno flotante
exactamente en el sitio que se indica. Usado directamente
puede dar problemas si justo en ese momento no cabe en la
página. Por ello se recomienda usarlo con la orden
\afterpage
(del paquete afterpage):
\afterpage{clearpage\begin{figure}[H]...\end{figure}}
Cambiar los parámetros con los que LaTeX ubica los entornos flotantes. Éstos son (entre paréntesis el valor por omisión):
topnumber
Número de flotantes en la parte superior de la página (2)
bottomnumber
Ídem, parte inferior (1)
totalnumber
Ídem, total (3)
\setcounter
, son contadores) puede ayudar.
Otros parámetros que se pueden cambiar (éstos ya con
\renewcommand
) son
\topfraction
Fracción del espacio superior de la página que puede ser ocupado por entornos flotantes, en la parte superior de la página (0.7)
\bottomfraction
Ídem, en la parte inferior (0.3)
\textfraction
Mínima fracción de una página que debe ser ocupada por texto (0.2)
\floatpagefraction
Mínima fracción de una página (sólo entornos flotantes) que puede ser ocupada por ellos (0.5)
De forma orientativa, pueden tomarse valores de otras clases que se sepa se comportan mejor. Por ejemplo, la clase amsart.cls tiene los siguientes parámetros, mucho mas flexibles,
\setcounter{topnumber}{4}
\setcounter{bottomnumber}{4}
\setcounter{totalnumber}{4}
\setcounter{dbltopnumber}{4}
\renewcommand{\topfraction}{.97}
\renewcommand{\bottomfraction}{.97}
\renewcommand{\textfraction}{.03}
\renewcommand{\floatpagefraction}{.9}
\renewcommand{\dbltopfraction}{.97}
\renewcommand{\dblfloatpagefraction}{.9}
\setlength{\floatsep}{12pt plus 6pt minus 4pt}
\setlength{\textfloatsep}{15pt plus 8pt minus 5pt}
\setlength{\intextsep}{12pt plus 6pt minus 4pt}
\setlength{\dblfloatsep}{12pt plus 6pt minus 4pt}
\setlength{\dbltextfloatsep}{15pt plus 8pt minus 5pt}
\usepackage{afterpage}
...
\begin{figure}
\includegraphics{figura-muy-grande}
\end{figure}
\afterpage{\clearpage}
la figura grande pasará a la página siguiente (donde quedará
sola), en lugar de irse al final del documento.Para giros sencillos, el paquete graphicx contiene las orden
\rotatebox
que permite conseguir giros de elementos de texto
o incluso de elementos más complejos. Sin embargo, cuando se quieren
rotar elementos complejos es recomendable aprovechar las posibilidades
del paquete rotating (disponible en
CTAN:macros/latex/contrib/supported/rotating
). Este paquete
permite girar casi cualquier tipo de elemento, incluyendo figuras o
tablas completas con sus cabeceras, mediante los entornos
sideways, sidewaystable y sidewaysfigure. Por ejemplo,
\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{sideways}
\begin{tabular}....
\end{tabular}
\end{sideways}
\end{document}
Hay que tener en cuenta que en todos estos casos se modifica el
postscript, por lo que los resultados no se ven correctamente con
xdvi ni funcionan bien con pdflatex.
Utilizando el paquete eurofont de CTAN. Contiene instrucciones
acerca de su uso con LaTeX. La notación de entrada normal es
\EUR{1,50}
. También puede utilizarse el paquete textcomp y
la macro \texteuro
.
Para obtener un resultado de mejor calidad que con ^\circ
puede utilizarse la orden \textdegree
del paquete
textcomp.
Utilizando la orden \textcircled{...}
Como texto: \textbackslash
.
Como matemáticas: \backslash
.
Como código: \verb|\|
Utilizando la orden \textvisiblespace
Utilizando la orden \textasciitilde
Existe una FAQ específica acerca de las conversiones entre formatos
TeX y de otros procesadores de textos,
que se archiva en CTAN:help/wp-conv/wp-conv.zip
.
Existen distintas formas de producir PDF usando (La)TeX.
CTAN:dviware/dvipdfm
), que genera PDF de alta
calidad, insertando los gráficos y permitiendo anotaciones y
enlaces. Su página raíz es
http://odo.kettering.edu/dvipdfm, pero tiene una serie
de restricciones que deben consultarse en el manual.dvi->ps->pdf
que se ha señalado
antes debe funcionar pero pueden perderse por el camino algunas
características del pdf. Otros caminos alternativos pasan por
convertir sobre la marcha a pdf las figuras y efectos
postscript. Esto puede hacerse, con más o menos limitaciones de
distintas formas:
.eps
,
así como el uso de psfrag y de algunos otros paquetes que
utilizan postscript de alto nivel. Existen versiones para
linux y OS/2 gratuitas, disponibles en
y en CTAN:systems/vtex
. La versión para Windows es
comercial
http://www.micropress-inc.comCTAN:macros/latex/contrib/pdftricks
, que intenta
extender el poder del paquete pstricks a pdfLaTeX.CTAN:macros/latex/contrib/ps4pdf
. Véase
Introduciendo código y figuras postscript en <em/pdfTeXLa forma más sencilla es mediante el Adobe Reader (antes Acrobat Reader) -- véase El formato pdf -- utilizando la herramienta Obtener texto que se encuentra a la izquierda en el Adobe Reader.
En la página http://www.mayer.dial.pipex.com/tex.htm se comentan diferentes programas de conversión de LaTeX a html con ejemplos del resultado de las distintas conversiones. Los más conocidos son
es un conversor de LaTeX a html bastante completo, que convierte los símbolos sin utilizar gráficos (aunque puede requerir un poco de configuración del navegador). Disponible en http://para.inria.fr/~maranget/hevea/. Tiene versiones para Linux, Solaris y Windows aunque es posible compilarlo para otros sistemas operativos a partir del código fuente.
es otro conversor de LaTeX a html que también convierte las ecuaciones en vez de representarlas como imágenes. Disponible en http://hutchinson.belmont.ma.us/tth/. Tiene versiones para Linux, Mac y Windows aunque es posible compilarlo para otros sistemas operativos a partir del código fuente. Utiliza gráficos.
es otro conversor a distintos sistemas de hipertexto, disponible en http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html. Tiene versiones para Linux, Mac y Windows aunque es posible compilarlo para otros sistemas operativos a partir del código fuente.
es quizás el más antiguo de los conversores, escrito en perl y utiliza gráficos.
El programa wp2latex (disponible en
CTAN:support/wp2latex
) ha sido recientemente actualizado
por Jaroslav Fojtik y ahora está disponible tanto para DOS
como para Unix.
Hay dos conversores disponibles, rtf2tex de Robert Lupton
(disponible en CTAN:support/rtf2tex
) y rtf2latex,
de Erwin Wechtl (disponible en CTAN:support/rtf2latex
),
para TeX y LaTeX respectivamente.
Aunque hay un programa de conversión (wd2latex, disponible en
CTAN:dviware/wd2latex
), se recomienda convertir el
documento a RTF y utilizar uno de los conversores de RTF
mencionados.
También hay un par de conversores comerciales, word2tex y tex2word.
Los formatos de TeX son archivos que contienen las macros básicas
precompiladas para obtener una mayor eficiencia. Para rehacer un
formato es necesario utilizar la orden initex
(Este nombre cambia
para algunas distribuciones, por ejemplo para emTeX es tex
-i
). Como muestra, para rehacer el formato plain se haría
initex plain \dump
Con eso se tiene el archivo plain.fmt
; ya sólo queda reemplazarlo
donde estuviera el original y listo.
Para hacerlo por ejemplo para eplain se habría hecho initex
plain
, y cuando aparece *
se introduciría \input
eplain
y después cuando vuelve a aparecer *
se
introduciría \dump
, así tendría un formato con eplain
y no habría que estar poniéndolo con \input
.
Cuando deben incluirse distintos archivos en el formato, a menudo es
más cómodo utilizar una archivo que los llame a todos. Por ejemplo,
para eplain
se podría haber creado el archivo eplain.ini
con
las líneas
\input plain
\input eplain
\dump
y se habría rehecho el formato con initex eplain.ini
.
En la mayor parte de las distribuciones modernas no es necesario
rehacer los formatos como se ha dicho antes, sino que hay herramientas
que ayudan a ello. Así, por ejemplo en TeXLive después de
configurar los distintos parámetros del formato (idioma, tamaños de
memoria...) al salir se rehace automáticamente el formato, lo mismo
que después de instalar un nuevo paquete, o en mikTeX donde hay
un elemento en un menú desplegable para rehacer los formatos ( o desde
una ventana DOS initexmf --dump
).
Dando el valor adecuado a la variable de entorno TEXEDIT
SET TEXEDIT=tu_editor +%d %s
en el autoexec.bat
o similares o
export TEXEDIT=tu_editor +%d %s
para bash y similares
Para escribir un periodo (el acento breve invertido que indica la
repetición de cifras decimales y que se pone encima de la parte
periódica del número) la solución más elegante consiste en utilizar
el paquete yhmath de Yannis Haralambous, disponible en
CTAN:macros/latex/contrib/supported/yhmath
. Este paquete
permite indicar periodos de longitud arbitraria mediante un acento
matemático \wideparen
que hace precisamente ese papel.
El paquete yhmath necesita un tipo especial que viene con el paquete y además el paquete amsmath, por lo que para uso esporádico o no tan exigente puede bastar una definición como la siguiente
\def\periodo#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3pt}%
\ensuremath{\braceld\leaders\vrule\hfill\bracerd}%
\crcr\noalign{\kern3pt\nointerlineskip}%
\ensuremath{\hfill\displaystyle{#1}\hfill}\crcr}}}\limits}
Existe otro paquete denominado tipa, disponible en
CTAN:/fonts/tipa
. Éste es un sistema para trabajar con
alfabetos fonéticos, que proporciona la orden
\texttoptiebar{'caracter'}
donde 'caracter'
obviamente es un numero(s) o una letra(s).
La respuesta se puede encontrar en Lamport sección 6.3 y en el
Companion sección 8.6 (Este capítulo del Companion está actualizado
en CTAN:info/companion-rev/
). LaTeX define y mantiene
unos cuantos contadores; uno de ellos es equation. Para generar
una etiqueta impresa, LaTeX ejecuta una orden cuyo nombre se forma
añadiendo \the
al comienzo del nombre del contador
adecuado. Por ejemplo, un número de ecuación se genera con la orden
\theequation
.
Para cambiar la numeración de ecuaciones de modo que se indique el capítulo, la sección y un número correlativo dentro de la sección haríamos:
\renewcommand{\theequation}{\thesection.\arabic{equation}}
El problema es que ahora tendríamos que volver a poner a cero el
contador de ecuaciones al comienzo de cada sección o capítulo. Una
solución sencilla es incluir en el preámbulo (entre un
\makeatletter
y un \makeatother
) lo siguiente:
\@addtoreset {equation}{section}
Esto hará que automáticamente se ponga el contador equation a 1
cuando se encuentre un nuevo \section.
Una forma que funciona incluso en plain TeX y que no requiere cargar tipos adicionales es con definiciones del tipo
\def\CC{{\rm C\kern-.18cm\vrule width.6pt height 6pt depth-.2pt \kern.18cm}}
\def\NN{{\mathop{{\rm I}\kern-.2em{\rm N}}\nolimits}}
\def\PP{{\mathop{{\rm I}\kern-.2em{\rm P}}\nolimits}}
\def\RR{{\mathop{{\rm I}\kern-.2em{\rm R}}\nolimits}}
\def\RRt{{\fa I}\kern-.2em{\fa R}}
%% This version of \RR can be used in the title of the paper
\def\ZZ{{\mathop{{\rm Z}\kern-.28em{\rm Z}}\nolimits}}
También es posible utilizar el tipo mathbb incluido con las
amsfonts. Éstas se cargarían en el preámbulo con
\usepackage{amsfonts}
\usepackage[mathscr]{euscript}
y se llamarían como \mathbb{C}
, etc...
Otra alternativa es el uso de los tipos bbm. Estos de cargan en el preámbulo con
\usepackage{bbm}
de forma que $\mathbbm{N, Z, R, Q, I, C}$
daría el
correspondiente símbolo.
Sí mediante el paquete amsmath y la orden \tag
. Por ejemplo,
\begin{equation}\label{1}
1+1=2.
\end{equation}
\begin{equation}
1+1=2.\tag{\ref{1}}
\end{equation}
Pues no es nada elemental. Sin tipos especiales no. Inicialmente no se consideró necesario que las letras griegas pudieran representar vectores y no se incluyeron tipos con ellas. La solución pasa por usar amstex y los tipos euler (más en concreto eurb).
También puede utilizarse el paquete amsmath. Así,
\usepackage{amsmath}
\begin{document}
$\boldsymbol{H}$
\end{document}
Si algún símbolo de alguna fuente no cambia a negrita con esta
orden, puede también utilizarse, con el mismo paquete, $\pmb{H}$
.
Puede utilizarse la orden rotatebox
del paquete graphicx,
pero hay que meter la ecuación en un parbox
, por ejemplo,
utilizando el entorno align
, del paquete amsmath,
\rotatebox{35}{
\parbox{4cm}{
\begin{align*}
(la ecuacion)
\end{align*}
}
}
\binom{N}{k}
, disponible en el paquete amsmath.
Puede probarse con el paquete tensind, disponible en
CTAN:/macros/latex/contrib/supported/bezos/
.
Mediante el paquete cancel
\times
o \wedge
, según la forma que prefieras (cruz y
angulito, respectivamente).
Además de los símbolos básicos de LaTeX muchos otros símbolos están
disponibles a través de distintos paquetes. Una excelente referencia a
todos los símbolos disponibles se encuentra en
CTAN:tex-archive/info/symbols/comprehensive
Para hacer cuadernillos estrictamente con TeX o LaTeX se pueden utilizar
las utilidades para manipular .dvi
(disponibles en
CTAN:dviware/dvibook
) o utilizar el paquete quire
(disponible en CTAN:macros/generic/midnight
). Ambos permiten
hacer cuadernillos, pero en ambos casos es necesario tener los tipos
para los distintos tamaños antes y después, y dan problemas con
facilidad cuando se incluyen gráficos externos.
El método más recomendable es hacerlo a partir de los ficheros postscript o pdf generados.
Las psutils son un conjunto de utilidades para manejar archivos postscript. Aunque el ejemplo está para un unix, también están disponibles para DOS, lo único que en vez de mandarlo a la cola de impresora se mandaría a un archivo que después se imprimiría con ghostscript/ghostview.
Para Unix por ejemplo, si se colocan adecuadamente las hojas en la impresora
psbook tu_archivo.ps | psnup -n 2 -pa4 | psselect -o | lpr
imprimiría las caras impares del librillo (cada una de ellas con dos páginas
reducidas y correctamente ordenadas). Se sacan las hojas, se ordenan
adecuadamente y se colocan adecuadamente en la impresora y
psbook tu_archivo.ps | psnup -n 2 -pa4 | psselect -e | lpr
imprimiría las caras pares del librillo, y ya está, se tiene un librillo
perfecto. La utilidad pstops también permite hacer todo eso
directamente, pero con unas opciones mucho más crípticas.
psbook también permite definir el tamaño del pliego, cuando el libro va a constar de distintos pliegos cosidos, cada uno de ellos de un número de páginas. Por ejemplo,
psbook -s 16 manualA4.ps
reordenaría las páginas para hacer pliegos de 16 páginas, y su salida se pasaría
después por psnup y psselect. El comportamiento por omisión
consiste en hacer un único pliego.
El paquete pdfpages permite operar sobre un fichero pdf
para hacer cuadernillos. Por ejemplo, para hacer un único
cuadernillo del fichero fichero.pdf
se utilizaría
\documentclass[a4paper]{book}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,booklet=true, landscape]{fichero.pdf}
\end{document}
y para hacer lo mismo, pero en pliegos de 16 páginas cada uno,
\documentclass[a4paper]{book}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-, signature=16, landscape]{fichero.pdf}
\end{document}
El paquete leaflet nos permite construir trípticos. Realmente sólo modifica los márgenes de la página completa para dividirla en tres áreas. El resultado al compilar es un documento con 6 páginas como máximo, en el que cada página tiene el texto escrito en una columna estrecha a la izquierda y el resto de la página está en blanco. Este documento aún no está finalizado y debe ser postprocesado. El postproceso lo hace un script (que viene incluido en el paquete), que se ocupa de llamar a pstops (que debe estar instalado) y que es quien junta tres páginas en una, colocándolas en el orden apropiado para que al imprimir a doble cara el resultado sea tres páginas por cara, y de modo que al doblar en tres quede en el orden correcto de lectura. Puesto que pstops funciona sobre ficheros postscript (.ps), el documento original debe ser procesado con dvips (no sirve usar pdflatex).
Por una parte existe un paquete llamado a0poster
(CTAN:macros/latex/contrib/supported/a0poster
) y por otra existe
una alternativa basada en un programa C llamado poster
(CTAN:support/poster
). Este último distribuye el texto en páginas
A4 que pueden unirse para hacer un póster grande.
Sí, con el paquete cd-cover, disponible en
CTAN:macros/latex/contrib/cd-cover
. Eso sí, a la hora de imprimir
hay que decirlo que lo haga en apaisado.
En primer lugar se tiene la clase de documento slides, que forma parte de LaTeX2e. Además, existen varios paquetes preparados para hacer transparencias. Los más clásicos son
CTAN:macros/latex/contrib/other/seminar
) CTAN:macros/latex/contrib/supported/foiltex
).También es posible generar directamente las transparencias en
formato .pdf
¿Qué es el formato pdf? utilizando los paquetes pdfslide
(CTAN:macros/latex/contrib/supported/pdfslide
) y pdfscreen
(CTAN:macros/latex/contrib/supported/pdfscreen
), quedando las
presentaciones preparadas para ser proyectadas desde un ordenador.
Otra alternativa consiste en utilizar la clase de documento
foils (parte de foiltex) y pdflatex, utilizando
posteriormente el postprocesador ppower4
(
http://www-sp.iti.informatik.tu-darmstadt.de/software/ppower4/index.html)
para tratar el archivo pdf obtenido. Un ejemplo de presentación
realizada con este sistema es la de Luis Seidel al EGUTH99,
disponible en
ftp://tex.unirioja.es/pub/tex/EGUTH99/texweb
Una opción que se está haciendo muy popular es la clase beamer, disponible en http://latex-beamer.sourceforge.net/. Aparte del propio manual puede encontrarse una guía rápida en http://www.geocities.com/kijoo2000/beamer.html.
Con beamer se distribuye otro paquete independiente para la inclusión de objetos multimedia en los documentos PDF creados mediante pdftex.
Únicamente se requiere en el preámbulo:
\usepackage{multimedia}
y la inclusión (pero no la incrustación) de ficheros de vídeo AVI
o QuickTime es tan fácil como:
\movie[width=60mm,height=45mm,borderwidth=0.5mm]{Título}}{fichero.avi}\\
\movie[width=60mm,height=45mm,poster,showcontrols]{}{fichero.mov}\\
así como para audio (estos sí que pueden ser incrustables):
\sound[inlinesound,samplingrate=22050,encoding=muLaw,bitspersample=8,
channels=2,label=misonido]{}{fichero.au}\\
\hyperlinksound[]{misonido}{\includegraphics[width=10mm]{inicio.png}}
\hyperlinkmute{\includegraphics[width=10mm]{paro.png}}\\
La página web http://www.math.uakron.edu/~dpstory/pdf_demos.html enumera una serie de macros de LaTeX y otros programas utilizados para hacer presentaciones tipo PowerPoint.
Otra fuente de información acerca de las posibilidades de presentaciones basadas en TeX y PDF es la página http://www.cds.caltech.edu/caltex/2000/ de Ross Moore, que incluye fuentes de documentos, ejemplos,enlaces,...
Otra interesante página es http://www.miwie.org/presentations/, de Michael Wiedmann, que contiene una enumeración de distintos sistemas y se ejemplos de cada uno. No sólo cubre la presentación en PDF, sino también en HTML y otros formatos. Para cada solución, muestra un ejemplo, pros y contras.
Para presentaciones en póster véase la sección pósters.
La forma en que se debe mandar un documento a la imprenta no es única, sino que depende del tipo de proceso de impresión por el que vaya a pasar el documento. En buena parte de los casos debiera bastar con enviar un archivo postscript normal con el documento. Sin embargo, a veces se pide el documento con características especiales como las que a continuación se tratan,
Con LaTeX puede hacerse utilizando el paquete crop, en la forma
\usepackage[mirror]{crop}
La reflexión especular se puede hacer directamente en el
postscript, en las tres formas siguientes (si se tiene una
distribución completa y actual como TeXLive)
dvips <archivo dvi> -h mirr.hd
dvips <archivo dvi> -Pmirr
dvips <archivo dvi> -Pmirrorprint
Realmente las dos primeras son la misma, pero llamadas de distinta
forma (config.mirr
llama a mirr.hd
). crop y
mirr.hd
están disponible en muchas distribuciones y además
pueden encontrarse en
CTAN:macros/latex/contrib/supported/crop/
y
CTAN:macros/generic/TeX-PS/mirr.hd
Para sacar el archivo en negativo puede utilizarse el paquete crop, cargándolo como
\usepackage[invert]{crop}
Para hacer los cortes, o marcas de corte (las líneas que señalan por
donde deberá cortar la guillotina) puede utilizarse el paquete
crop al que se acaba de hacer referencia. Dentro de las
midnight macros (disponibles en
CTAN:macros/generic/midnight
se puede utilizar quire
que también permite hacer marcas de corte.
Es
decir, como evitar que si se escribe algo como \LaTeX es
...
aparezca como LaTeXes ...
con el texto
pegado. Para ello hay varias formas, algunas más elegantes que
otras. Las más sencillas son escribirlo bien como \LaTeX{} es
...
o como \LaTeX\ es ...
. Sin embargo esto no
resulta demasiado elegante, aunque es inevitable cuando se utiliza
con órdenes predefinidas. Cuando estas órdenes están definidas por
el autor del documento, resulta muy cómodo utilizar el paquete
xspace, parte de las herramientas básicas de LaTeX2e. La
forma de uso es simple, debe incluirse en el preámbulo del
documento la llamada al paquete, \usepackage{xspace}
y al
definir la orden se hace como
\newcommand{\mycommand}{palabra\xspace}
De este modo cualquier llamada a \mycommand
incluirá el
espacio en blanco si es necesario, y no lo hará si no es necesario.
Para colocar una figura en el margen:
\marginpar{\includegraphics{icono}}
Perfectamente, con \label
puesto dentro de la nota al pie
(\footnote{\label{f1}Texto}
y \ref
puesto en su
lugar (\footnote
{Esta nota hace referencia a la nota
\ref{f1}
de la página \pageref{f1}})
. Mediante
\label
se establece la referencia al último contador
incrementado, en este caso el de las notas al pie.
Naturalmente, hasta que no esté la segunda nota, con su
\label
correspondiente, el \ref
que se ha puesto
en la primera no tendrá valor asignado, y al componer el texto
parcial, en lugar del número de la nota aparecerán los típicos
símbolos de interrogación de cerrar.
Sí, utilizando el paquete endnotes.
Por ejemplo con
\renewcommand{\thefootnote}{\itshape\alph{footnote}}
(Las llamadas con letras deben ser con cursiva, y se suelen
reservar para cuadros y similares.)
\marginpar{\footnotemark}\footnotetext{Texto de la nota}
Sí, pero \footnote
debe ser protegido como
\protect\footnote
. Ésto tiene un problema adicional, saldrá
el símbolo de la nota a pie de página en la tabla de materias. El
paquete footmisc con la opción stable
permite hacerlo de
una forma más adecuada.
El paquete yafoot permite un mayor control soble las notas a
pie de página, mediante tres ficheros de estilo, pfnote.sty
para confinar las notas a pie en una página, fnopos.sty
para
controlar su posición y dblfnote
para hacerlas a doble columna.
Más bonito que utilizar verbatim queda con cualquiera de los paquetes listings, lgrind o fancyvrb
Algunos ejemplillos para empezar a colorear texto
...
\usepackage{color}
...
\begin{document}
...
\textcolor[rgb]{1,0,0}{soy un texto que quedara en color rojo}
\textcolor[rgb]{1,1,0}{yo soy un texto en amarillo}
\textcolor[rgb]{0,0,1}{hola, soy azul}
\textcolor[rgb]{0,1,1}{soy azul celeste}
\textcolor[rgb]{1,0,1}{yo soy rosa}
\textcolor[rgb]{0,1,0}{yo verde claro}
\textcolor[rgb]{0.5,0,0}{marron}
\textcolor[rgb]{0,0.5,0.5}{azul verdoso}
\textcolor[rgb]{1,1,1}{soy blanco}
etc, etc, etc...
rgb
significa red green blue y corresponde a
una forma de especificar el color. El numero entre corchetes
indica cuánto (R)ed, (G)reen, y (B)lue corresponde al color del
texto. Existen otras maneras más complicadas pero ésta está bien
para empezar.
Utilizando el paquete colortbl (junto con el paquete graphicx) Algo como
\multicolumn{1}{>{\columncolor[gray]{0.8}}c}{text}
debe colorear una celda.
Por ejemplo, para una figura puede hacerse de la forma siguiente:
\begin{center}
\makebox[0cm][c]{\includegraphics{tufigura.eps}}
\end{center}
o en general,
\begin{center}
\makebox[0cm][c]{
Material tabular, o cualquier otra cosa.
}
\end{center}
Si se desea usar el entorno table, para poder poner el
correspondiente \caption
, la cosa se complica un poco ya
que \makebox
no admite un entorno flotante como table en
su interior:
\begin{center}
\begin{table}
\centering\makebox[0cm[c]{
\begin{tabular}{|c|c|}
...... ....
\end{tabular}
}
\caption{Texto}
\end{table}
\end{center}
También puede colocarse un pie dentro del \makebox
, pero se
necesita un poco más de trabajo (Véase "¿Puedo poner un pie en
tablas y figuras que no flotan?")
Una posibilidad consiste en fabricar la tabla dentro de un
savebox
con el entorno lrbox
y luego medirlo con
\widthof
, etc. del paquete calc. Si se usa
longtable, este procedimiento no funciona, ya que se extiende
por varias páginas. Sin embargo longtable precisamente
escribe la longitud de cada fila de la tabla en el fichero
.aux
, por lo que se podría recuperar desde allí. En concreto,
longtable escribe la definición de una macro
\LT@<num>
, donde <num>
es un número de orden
correlativo de cada entorno longtable (en romano y en
minúsculas) que contiene las longitudes de cada columna.
Por ejemplo con renewcommand{\arrayrulewidth}{1.1pt}
Puede utilizarse el paquete slashbox, disponible en
CTAN:macros/latex/contrib/other/slashbox
En principio, podría pensarse que bastaría con usar la orden
\thepage
. Sin embargo, debido a cómo TeX va componiendo
los párrafos el resultado puede ser incorrecto, ya que primero
ejecuta todas las macros según va componiendo el párrafo y hasta
que no está terminado no decide en que página van sus líneas. Si
el párrafo ocupa dos páginas, es muy probable que la página sea
incorrecta.
Para sincronizar correctamente la página con su número hay que
usar algún mecanismo que sí permita conocer la página correcta,
como el de las referencias con \label
y
\pageref
. El siguiente código es una modificación de uno
incluido en el LaTeX Companion:
\usepackage{ifthen}
\newcounter{pl}
\newcommand\pcheck{%
\stepcounter{pl}%
\label{pl-\thepl}%
\ifthenelse{\isodd{\pageref{pl-\thepl}}}{impar}{par}}
\begin{document}
Esta página es \pcheck. \newpage
Esta página es \pcheck.
\end{document}
El paquete lastpage lo resuelve de forma adecuada (necesitará
un par de compilaciones). Mediante su uso pueden construirse
expresiones del tipo página 1 de 10 (con página \thepage{}
de \pageref{LastPage}
).
url
muy larga se me desborde por la derecha?Utilizando el paquete url. Está pensado precisamente para eso,
para dividir los url
s por puntos adecuados que no afecten a su
legibilidad, como por ejemplo en las barras separadoras de directorio.
Por ejemplo, utilizando el paquete multicol.
Con la opción openright
. Por ejemplo
\documentclass[12pt,a4paper,openright]{report}
Puede utilizarse testflow. Es un paquete de diagnósticos que da
bastante información útil para producir buen postscript y/o pdf en
un sistema TeX. Se encuentra disponible en
CTAN::/macros/latex/contrib/supported/IEEEtran/testflow
Para notificar errores o problemas se escribe latex latexbug
y se
envía el informe así generado a latex-bugs _AT_
rus.uni-stuttgart.de
. Se recomienda previamente leerse las distintas
FAQ y pedir ayuda en los distintos foros acerca del problema, y sólo
entonces, cuando se esté seguro que el problema es de LaTeX2e mandar
el informe de error.