16 de junio de 2009

Truquitos en LaTeX (I)


Para los que no lo sepan, LaTeX es un procesador de textos científicos de alta calidad.
Oseasé, un "Word" pero bien hecho, y que fue inicialmente desarrollado para escribir matemáticas más fácilmente que con el (incomodísmo) editor de ecuaciones del Word o de otros similares.

Bueno, el caso es que se ha ido extendiendo a todos los campos, y ahora prácticamente cualquier revista científica, cualquier libro un poco currado o cualquier artículo sale (o debería) escrito en LaTeX.

¿Por qué? Pues por que queda mejor (sencillamente). Claro que eso no es gratis.

LaTeX requiere un procesado de un código fuente (que es lo que escribes) para ver lo que realmente sale. A esto se le llama WYSIWYM (What You See Is What You Mean "lo que estás viendo es lo que quieres decir"), frente a los WYSIWYG (What You See Is What You Get "lo que estás viendo es lo que obtendrás").

Éstos son probablemente los grupos de siglas más horteras que he visto nunca, pero bueno, permite diferenciar el Word (en el que eliges una palabra, le das a negrita y se pone negrita) del LaTeX (en el que eliges una palabra, le das a negrita, y lo que aparece es \textbf{palabra}, peeero, al compilarlo, ya aparecerá negrita).

El caso es que trasteando con el LaTeX me he ido encontrando con dificultades que, una vez resueltas, paso a contar a todo al que también le pase y lo busque por internet.
Las pondré sin orden ni nada, según me apetezca:

1) Cómo hacer que una matriz tenga más columnas de las 10 que vienen por defecto:

Para matrices grandes de más de 10 columnas, tenemos que cambiar primero el contador MaxMatrixCols (porque si no no te deja hacer matrices más grandes), hasta un número máximo (que puede ser el de la matriz más grande del documento o un número suficientemente grande aunque te pases):

\setcounter{MaxMatrixCols}{18}


2) Cómo cambiar la separación entre columnas de matrices o separación entre eqnarray:

En esta web, se cuenta muy instructivamente algunas cositas.

Para cambiar el ancho de columna (en matrices, en eqnarrays, y otros) se hace:

\setlength{\arraycolsep}{2pt}

Por defecto, es 5pt.


3) Cómo cortar las palabras al final de las líneas:


· Lo primero es cargar los paquetes necesarios según el idioma del documento:

\usepackage[spanish]{babel}

Se pueden cargar varios idiomas, poniendolos con comas: \usepackage[spanish,greek,french]{babel}

· Si alguna palabra en concreto la corta mal, o directamente no la corta y sobresale en el párrafo, se puede poner "\-" donde quieras que la corte.
Por ejemplo:
Si la palabra que corta mal es abreviatura
por ejemplo, que se ve que sobre-
sale del resto del párrafo, o que
la corta pero lo hace mal, abrev-
iatura, lo que se hace es poner...

abre\-viar

y así le indicas que si tiene que cortarla, que la corte por ahí.

· Para curarse en salud, sobretodo con palabras difíciles, nombres propios, etc. lo suyo es indicar al principio del documento cómo se deben cortar, con

\hyphenation{Bee-tho-ven}

Así, le indicamos que la palabra "Beethoven", en caso de que la tenga que cortar porque está al final de una línea, la corte en esos sitios, y no en otros.

· Finalmente, para ajustar globalmente cómo quieres que corte las palabras, están las variables internas de LaTeX "\pretolerance", "\tolerance" y "\emergencystretch". (ver esto en inglés)http://www.tex.ac.uk/cgi-bin/texfaq2html?label=overfull

"\pretolerance" es el valor que LaTeX usa (\pretolerance=100, por defecto) en primer lugar para ver dónde cortar las líneas. Si no sale un corte digno, carga las divisiones de palabras que están en el paquete "babel" e intenta cortar la línea con el valor de \tolerance. Si tampoco funciona, introducirá un 'espacio de emergencia' con "\emergencystretch".

La más interesante es "\tolerance", (\tolerance=200, por defecto) que se puede cambiar fácilmente:

\tolerance=202

y lo interesante es cambiarlo gradualmente y ver cómo re-formatea el documento, hasta que concuerde con lo que deseas.



Seguiremos otro día con más...

4 comentarios:

  1. Ya tardaba en llegar, lo esperábamos con ansia!!

    Aquí en Albuquerque, todo, pero todo TODO lo hacemos con LaTex. El LaTeX nos encanta, lo usamos en todas partes. Es comodísimo, además de dar mucho mejor resultado que otros productos. Yo en el ayuntamiento uso LaTeX, a mis secretarias les animo a usarlo también. Y a los bedeles. Y a los concejales. Porque además, es mucho más seguro que otras alternativas...

    Ah, el LaTeX...

    LaTeX!

    Besos de amor y LaTeX

    ResponderEliminar
  2. Jurjur.
    Me parece notar cierto tono irónico-festivo en sus palabras, Sr Alcalde...

    Aunque eso sí, reconozco que el nombre no es lo más idóneo para tratar de algo "serio", porque los juegos de palabras son taaaaaaaaan fáciles.

    - "Yo utilizo el LaTeX"
    - "Ais, qué moderno, yo sigo con el MaRcHaTrÁs"

    Supongo que por eso dicen que "látex" se pronuncie "látex" y "LaTeX" se pronuncie "Látej".

    Besos y LaTeX para todos

    ResponderEliminar
  3. Donde entro a editar el contador MaxMatrixCols??

    ResponderEliminar
  4. En el preámbulo por ejemplo, basta con poner \setcounter{MaxMatrixCols}{num}, donde num es el número máximo de columnas.

    Un saludo.

    ResponderEliminar