Página siguiente Página anterior Índice general

6. Preguntas específicas para el LaTeX en castellano

6.1 ¿Cómo puedo usar TeX en castellano? o ¿Qué es lo mínimo que hay que saber para escribir en castellano con TeX/LaTeX?

En realidad, no es necesario nada adicional que no esté ya incluido en las distribuciones más habituales. El problema normalmente se reduce a tres cosas:

  1. Introducción de caracteres acentuados. Véanse las respuestas a las preguntas mediante órdenes LaTeX, ¿Cómo introducir directamente los caracteres extendidos? y acentos en modo matemático
  2. Literales en castellano. Véase la respuesta a la pregunta ¿Cómo cambiar los literales que LaTeX produce?.
  3. Patrones de partición de palabras (silabeo o guionado). Véase patrones de guionado donde se explica cómo hacer que TeX parta las palabras siguiendo las reglas del español.

6.2 Con LaTeX, ¿cómo puedo escribir los acentos y demás caracteres extendidos?

Mediante órdenes LaTeX

Cuando no hay más remedio, los caracteres extendidos se escriben así:

á  ==>  \'a        Á  ==>  \'A     ñ  ==>  \~n   ¿  ==>  ?`
é  ==>  \'e        É  ==>  \'E     Ñ  ==>  \~N   ¡  ==>  !`
í  ==>  \'\i{}     Í  ==>  \'I     ü  ==>  \"u
ó  ==>  \'o        Ó  ==>  \'O     Ü  ==>  \"U
ú  ==>  \'u        Ú  ==>  \'U
Sin embargo, ésto normalmente no es necesario. Véase la respuesta a la pregunta Introducir directamente los caracteres extendidos

Directamente mediante el paquete inputenc

El paquete inputenc permite escribir directamente en la página de códigos habitual, convirtiéndose internamente el texto introducido a texto LaTeX, de acuerdo con las diferentes tablas de equivalencia para las distintas páginas de códigos y de forma completamente transparente al usuario.

Si somos usuarios de UNIX, debemos poner al principio de nuestro documento (en lo que se denomina el preámbulo, entre \documentclass... y \begin{document}) lo siguiente:

\usepackage[latin1]{inputenc}
si la codificación es iso-8889-1 (también conocida como latin1).

Si la codificación es utf-8, como en muchas distribuciones recientes de Linux:

\usepackage[utf8]{inputenc}
pero si la instalación es antigua, debe utilizarse el paquete ucs (en muchas distribuciones se le llama latex-ucs, aunque carga ucs.sty):
\usepackage{ucs}
\usepackage[utf-8]{inputenc}

Si trabajamos con MS-Windog hay que usar cp1252 (que es casi el latin1)

\usepackage[cp1252]{inputenc}
(ansinew es una variante obsoleta). Si trabajamos con DOS, hay que poner esto:
\usepackage[cp850]{inputenc}
y si somos de Macintosh, esto otro:
\usepackage[applemac]{inputenc}
(aunque hay editores de Mac que guardan como latin1 o utf8).

Por lo tanto, el método recomendado para utilizar caracteres de 8 bits en TODAS las plataformas en LaTeX2e es escribir:

\usepackage[tipo]{inputenc}
para decir qué página de códigos de entrada usamos.

Ni este método ni el que se menciona en acentos LaTeX son válidos en modo matemático.

¿Cómo introducir acentos en modo matemático?

Para introducir acentos en modo matemático no hay más remedio que hacerlo mediante órdenes LaTeX, pero en este caso son distintas de las de la sección acentos LaTeX. Por ejemplo máx se escribiría en modo matemático como m\acute{a}x y ñ como \tilde{n}. Si se quiere un acento sobre una i, tanto spanish para babel como el paquete dotlessi (CTAN:macros/latex/contrib/supported/bezos/dotlessi.sty) proporcionan la orden \dotlessi; por ejemplo, mín se escribiría m\acute{\dotlessi}n.

spanish.sty ya proporciona algunas de estas palabras acentuadas, por ejemplo, después de cargar el paquete babel con la opción spanish mediante \usepackage[spanish]{babel}, $\min a$ permite escribir la palabra acentuada. También proporciona un \dotlessi que complementa a \imath.

6.3 ¿Puedo compartir mis archivos LaTeX en los que he escrito los acentos directamente?

Si los caracteres acentuados están escritos mediante órdenes LaTeX pueden compartirse sin problemas, ya que se utiliza únicamente codificación de 7 bits.

Si introduzco las letras acentuadas directamente como en utilizando inputenc, tendré dos posibles problemas:

  1. ¿Me servirá para otros ordenadores que utilicen una página de códigos diferente?, pues la segunda mitad del conjunto de caracteres es distinta de unos a otros.
  2. ¿Podré enviarlo por correo electrónico?, pues solamente acepta 7 bits.
¿Cómo se soluciona esto? Con GNU recode, con MIME, o con las dos cosas, según el caso.
  1. Si simplemente se quiere procesar el documento, sí que servirá para otros ordenadores: Ejemplo: Si nosotros tenemos Unix y alguien que usa Macintosh nos da (en disquete) un archivo con los códigos del Mac, nuestro LaTeX lo entenderá y lo procesará bien si lleva la llamada a inputenc, dando el resultado correcto, aunque no podamos ver correctamente el texto original con nuestro editor de texto.

    Si queremos además modificar el documento o simplemente ver bien o simplemente ver bien el texto sin procesar original, necesitaremos convertirlo a la página de códigos que se utilice en nuestro ordenador. Para ello recurriremos a GNU recode escribiendo:

    recode applemac:latin1 archivo.tex
    
    que nos convierte el documento de la página de códigos applemac a la latin1. Si ahora modificamos la línea del inputenc para que ponga latin1 en lugar de applemac todo funciona exactamente igual que antes en cuanto al resultado. ¡Magia! ¿Dónde encontrar fuentes o binarios precompilados de recode? En los siguientes lugares:

    fuentes

    En cualquier réplica del archivo GNU, en el directorio recode.

    DOS

    ftp://ftp.simtel.net/pub/simtelnet/gnu/gnuish/dos_only o en el mismo lugar en cualquier réplica del archivo simtel.

    DOS32

    ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/ o en el mismo lugar en cualquier réplica del archivo simtel.

    win32

    http://www.weihenstephan.de/~syring/win32/UnxUtils.html

    unix

    En caso de no tener directamente binarios precompilados, suele ser sencillo compilar el programa a partir de las fuentes para cada sistema unix concreto.

  2. Para evitar problemas con el correo, siempre se puede convertir el documento a formato LaTeX antes de mandarlo por correo. Después de todo, la mayoría de lo que se escribe es para uno mismo, no para mandarlo por correo. Ejemplo: Si alguien tiene un Mac, para enviar algo por correo debe en primer lugar hacer una copia del documento (pues GNU recode machaca el original). Con la copia se puede hacer:
    recode -d applemac:latex archivo.tex
    
    y ya podemos enviar el archivo.tex resultante por correo. Supongamos que el receptor trabaja con Unix, tendría que escribir:
    recode -d latex:latin1 archivo.tex
    
    y cambiar el inputenc, en su caso.

    En cualquier caso, si es posible, es mucho mejor enviar el archivo directamente con acentos utilizando el estándar MIME con quoted-printable, de esta forma llega el archivo con los acentos intactos aún usando los canales habituales de 7 bits. Naturalmente debemos ponernos de acuerdo con el receptor del mensaje para que él también tenga un programa que acepte MIME, pero dado que es un estándar, todo el mundo debería acabar teniéndolo.

Nota al margen: recode 3.4 no transforma correctamente de 850 a iso, porque no convierte bien los retornos de carro. A partir de la versión 3.4.1 se supone que lo hace correctamente. Si la versión de recode que tenemos es la problemática, se puede usar la opción -a de unzip para corregir los retornos de carro. Si nuestro documento no tiene mayúsculas acentuadas, se puede usar la opción ibmpc:l1 (ibmpc es sinónimo de 437).

6.4 ¿Por qué cuando se selecciona texto en Adobe Reader o xpdf, desde un documento PDF generado con LaTeX, las letras acentuadas y eñes no se copian bien?

El problema aparece cuando se utiliza un tipo de letra que no utiliza la codificación T1, y desaparece cuando se usa.

El tipo por omisión de LaTeX es el Computer Modern que no contiene vocales acentuadas. Cuando el texto usa por ejemplo á, LaTeX crea esta letra juntando dos caracteres, una a y un acento agudo. El aspecto en pantalla y en papel es el correcto, pero al seleccionar ese texto en el Acrobat Reader, lo que se obtiene es la secuencia 'a.

Otros tipos de letra sí contienen una letra á, y si se usa este tipo y se indica a LaTeX que use la codificación T1, la selección de texto en Reader ya funcionará bien. Así que el problema se soluciona siguiendo estos pasos:

Si ponemos \usepackage[T1]{fontenc} sin más en un documento, entonces LaTeX cambia el tipo por omisión, y en vez de Computer Modern, usará European Computer Modern (EC). Si este tipo está instalado, el PDF se generará sin problemas y el asunto de seleccionar texto quedará arreglado. Pero aparecerá otro problema, y es que normalmente los tipos EC que vienen instaladas en las distribuciones de LaTeX vienen sólo en formato PK, que es un formato que después se ve muy mal en el Reader (como borroso y descolocado).

Para esto la solución típica solía ser usar el paquete ae, el cual instala un tipo virtual, que aparentemente usa la codificación T1 (para que LaTeX quede contento), pero que en realidad usa las fuentes CM en vez de las EC (para poder usar los tipos postscript en vez de los PK y así tener un PDF que se vea bien con el Reader). Sin embargo esta solución hace que el problema de la selección de texto reaparezca, ya que, aunque desde el punto de vista de LaTeX los tipos ae usan codificación T1, la realidad es que en el PDF final no lo usa, y la á sigue siendo una combinación de a y ' (como no podía ser de otra forma, ya que la fuente CM no tiene el carácter á).

Así que en este caso el truco de usar el paquete ae no sirve, y no queda más remedio que recurrir a un tipo que realmente use la codificación T1, como los tipos Postscript estándar (Times-Roman, Palatino, etc.)

Existe una versión postscript de los tipos EC, cuyo desarrollo tiene lugar junto al del lenguaje de descripción musical lilypond y están disponibles en http://www.lilypond.org/download/fonts/. Asimismo los tipos cm-super, disponibles en CTAN:fonts/ps-type1/cm-super/ también aceptan la codificación T1.

Resumiendo, la solución es bien buscar y usar los tipos EC o alguno que utilice la codificación T1, o si no compensa el esfuerzo utilizar directamente los tipos Postscript estándar. Para ello basta añadir al preámbulo del documento

\usepackage{times}          % Usar tipo Times-Roman
\usepackage[T1]{fontenc}    % Usar la codificación T1
Con esto ya funcionará lo de cortar y pegar desde el Reader, aunque utilizando otro tipo de letra con otra métrica que puede cambiar la maquetación. En vez de times también pueden utilizarse palatino o bookman, dependiendo de los gustos.

6.5 ¿Cómo cambiar los literales que produce LaTeX?

Cuando Lamport hizo el LaTeX original, proporcionó una serie de estilos estándar como ejemplo de uso. Estos estilos se hicieron muy populares, principalmente porque todas las instalaciones de LaTeX los tienen. Sin embargo, estos estilos utilizan unos convenios muy particulares y es fácil que un usuario desee cambiarlos. Algo especialmente molesto para el uso en castellano de los estilos estándar, es que generan determinados títulos (p.ej. Contents, Bibliography, etc.) en inglés, lo que hace inaceptable su uso.

Aunque era posible crear versiones modificadas para otros idiomas, se extendió la idea de internacionalizar dichos estilos. Por ejemplo, donde ponía la palabra Contents se ha cambiado por \contentsname y se define aparte el valor de esta macro.

Esta es la forma en que funciona LaTeX2e actualmente. De esta manera, es posible continuar usando los mismos estilos estándar en diferentes idiomas, simplemente redefiniendo el valor de estas macros en el documento o en un estilo aparte, por ejemplo con

\renewcommand{\contentsname}{Tabla de materias}

Un paquete de estilos que hace esto es babel -- Véase ¿Qué es babel?. Cuando se quieren hacer estos cambios en un documento que utiliza babel con spanish.sty hay que proceder de una forma un poco distinta. Véase Modificando los literales de spanish.sty

6.6 ¿Cómo hacer que LaTeX parta correctamente las palabras en castellano?

¿Qué configuraciones (o patterns) existen para la partición de palabras?

Lo primero que hay que decir es que la partición en castellano es algo mucho más complejo de lo que pudiera parecer a simple vista. Aunque el español es un lenguaje muy regular, tiene ciertas anomalías que convierten este tema en un campo minado. Hay dos conclusiones básicas: 1) No es posible encontrar el 100% de los cortes legales y 2) no es deseable. Para empezar, la Academia permite partir tanto por componentes (sub-ur-ba-no) como silábicamente (su-bur-ba-no). Además el concepto de sílaba es en algunos casos confuso y la etimología tampoco ayuda (Ej: su-bli-me, a pesar de derivar de sub-limis, contra sub-li-mi-nal). Sin mencionar que los conceptos de diptongo e hiato distan mucho de estar claros. Este último caso viene a carecer de importancia, pues libros de estilo consultados prescriben ignorar los hiatos al partir palabras. El siguiente comentario de Fernando M. Fournon González-Barcia es interesante para ilustrar los problemas:

"La RAL dice que es POTESTATIVO lo de la separación por prefijos. Al menos en el esbozo, que si somos puristas y nos atenemos a la única gramática válida, la del 31, casi ni eso."
"Creo que, estéticamente, lo mejor es no partir nunca, salvo cuando la cosa vaya a quedar muy fea (esta recomendación también la hace la RAL), como hace el LaTeX, y entonces partir lo más conservadoramente posible. Si para los poquísimos casos en que un párrafo se pone pesado y en vez de partir subur-bano hay que hacer sub-urbano, pues ..., que se haga a mano, ¿no?."
"Otra cosa es que al partir surjan vocablos malsonantes. Esto SÍ que debería de comprobarlo cualquier separador de palabras, pues normalmente es muy difícil detectarlos a simple vista (si es que hay tiempo para releer nuestros propios artículos). O sea, que antes que una lista de prefijos, sugeriría la creación de una lista de tacos y cacofonías varias. :-)"
Es decir, lo mejor es evitar cualquier caso conflictivo en los patrones (patterns) de uso general. Localmente puede hacerse los que se quiera, usando excepciones o introduciéndolos a mano, por ejemplo.

Al día de hoy se recomienda utilizar la tabla de partición eshyph.tex, de Javier Bezos, con partes debidas a Francesc Carmona, disponible en

CTAN:language/spanish/hyphen/eshyph.tex
Aunque aún incompleta, debe funcionar mejor que otras tablas de partición muy antiguas, y su licencia es más adecuada que la de la tabla sphyph.tex, anteriormente recomendada por CervanTeX.

¿Cómo activo el patrón de partición de palabras para el castellano?

En primer lugar, para que el guionado funcione correctamente con palabras acentuadas, debe utilizarse una fuente que utilice codificación T1. Esto se consigue poniendo en el preámbulo \usepackage[T1]{fontenc}

En algunos casos, este cambio implica que la fuente sea "bitmap" en lugar de vectorial, lo que hace que el PDF pierda calidad (y a veces incluso crezca su tamaño). En general, es muy conveniente utilizar fuentes vectoriales. El paquete lmodern contiene fuentes vectoriales con codificación T1 y del tipo de las "Computer Modern", y evita este problema.Otras fuentes como las que se obtienen al cargar el paquete times también son vectoriales.

Usar una fuente T1 tiene ventajas. Por una parte, el guionado ya funcionará correctamente y no será necesario especificar reglas especiales para palabras normales. Si alguna palabra tiene un guionado irregular, puede especificarse de todos modos con \hyphenation (no se pone \- dentro, sino -). Por otra parte, el PDF resultante es más amigable para el usuario, pues las búsquedas y la selección de texto (para copy&paste) funcionan bien incluso en palabras acentuadas.

A lo mejor basta con instalar un paquete

En las distribuciones modernas, al instalar el paquete específico para el castellano automáticamente se activa el patrón de partición y se rehacen los formatos. Normalmente, sólo es necesario hacerlo manualmente si se tiene una distribución antigua o si se quiere añadir algún fichero de partición que no está en la distribución. Para la mayor parte de los usuarios, lo anterior es todo lo que necesita saberse.

También debe tenerse en cuenta que en algunas distribuciones, como Debian GNU/Linux, cada paquete de idioma pone un pequeño elemento bajo un directorio (/etc/texmf/language.d en el caso mencionado) que se unen automáticamente al actualizar o instalar un nuevo paquete sobreescribiendo el language.dat original. Para evitar que nuestros cambios desaparezcan, debe añadirse un nuevo elemento con ellos (o, si no se sobreescribe, modificar el anterior) y actualizar el completo mediante la misma herramienta utilizada por la distribución (update-language en el caso mencionado).

Aunque en casos extremos lo hay que hacer de forma manual

Si realmente no hay más remedio y se desea activar manualmente el patrón de partición para el castellano es necesario tener babel -- Véase ¿Qué es babel? -- instalado y generar el formato cargando el patrón de separación en sílabas en castellano. Manualmente se haría de la siguiente manera (¡Ojo!, si el sistema utiliza pequeños elementos, puede que el cambio directo de language.dat no funcione como se espera o se sobreescriba durante una actualización)

Para TeX y LaTeX: Cambiando el archivo language.dat

Para LaTeX.

Una vez hecho lo anterior no es necesario más que rehacer los formatos -- Véase ¿Cómo rehacer los formatos? --. Entonces cuando se llame a babel con la opción spanish, éste se encargará de utilizar los patrones de guionado en castellano.

Para plain-TeX

Por omisión, cuando el initex crea el formato, carga el archivo hyphen.tex que contiene las reglas de silabeo en inglés. Para activarlo también en plain-TeX se debe copiar el archivo hyphen.cfg como hyphen.tex en algún sitio que en el camino de búsqueda de TeX esté antes del hyphen.tex que viene como parte de plain-TeX y asegurarse que existe el archivo ushyph1.tex (que realmente es el mismo que el hyphen.tex original, pero con otro nombre). Este paso no es necesario si sólo se quiere la partición de palabras para LaTeX y se va a utilizar babel, pero tampoco sobra.

Para los usuarios de teTeX los archivos están en TEXMF/tex/config/babel/hyphen.cfg y el hyphen.tex original en TEXMF/tex/generic/hyphen/hyphen.tex

Para los usuarios de MikTeX, los archivos están en TEXMF/generic/hyphen/hyphen.cfg y TEXMF/generic/hyphen/hyphen.tex

En caso de no conseguirse hacer lo anterior también puede sustituirse el archivo hyphen.tex por el hyphen.cfg, pero debe tenerse cuidado al actualizar la distribución de no sobreescribir el hyphen.tex con al que venga con la distribución nueva.

Entonces es necesario reconstruir el formato como se indica en ¿Cómo rehacer los formatos?.

Cuando se quiere usar el silabeo en castellano, hay que agregar en el archivo .tex, al principio, una linea que diga \language1 si el castellano es el segundo lenguaje (no sinónimo) del language.dat (\language0 correspondería al inglés americano).

A pesar de que he activado los patrones de partición de palabras del castellano, hay una palabra que se me resiste

Aunque los patrones de partición de palabras intentan abarcar el mayor número de casos posible, siempre puede quedar alguna palabra recalcitrante. También puede ocurrir que la partición sea correcta, pero no deseable a los ojos del autor del documento. En este caso hay dos posibilidades:

Mi TeX no parte las palabras que tienen acentos. ¿Por qué?

El primitivo \accent detiene la partición. Es posible ayudar a TeX invocando la siguiente macro después de un acento:

\def\allowhyphens{\penalty10000 \hskip0pt}
spanish.sty lo hace automáticamente en caso necesario. En cualquier caso, lo mejor es usar tipos con las letras acentuadas como por ejemplo los EC (activados con \usepackage[T1]{fontenc} ) y patrones de partición que contemplen esto.

6.7 Acerca de spanish.sty

Los archivos para escribir en castellano con babel (spanish.*) los creó y mantuvo durante mucho tiempo Julio Sánchez. Ahora esos archivos los mantiene Javier Bezos y desde hace tiempo son oficiales en la estructura de babel. Es posible que alguna distribución de LaTeX aún utilice los archivos antiguos y que haya algunas diferencias respecto de lo que aquí se describe. La actualización está más que recomendada.

Javier Bezos mantiene la información relativa a spanish.sty en la página http://www.tex-tipografia.com/spanish.html

¿Dónde se puede obtener la documentación de spanish en castellano?

La documentación de spanish que se incluye al componer user.drv está en inglés, pero el archivo spanish.dtx también la incluye en castellano. Basta con componer este archivo y obtendremos un detallado manual como spanish.dvi.

La versión más reciente del manual de spanish.sty se encuentra en http://www.tex-tipografia.com/archive/spanish.pdf. Debe tenerse cuidado con las versiones, pues puede referirse a una versión muy posterior a la que se encuentra instalada en el sistema.

¿Cómo cambio los nombres de las secciones de bibliografía, índice, etc... que pone spanish.sty?

Si no importa que este cambio no siga las características de babel y spanish de cambio de idioma sobre la marcha, etc.., se puede hacer de la misma forma que en la sección ¿Cómo cambiar los literales que produce LaTeX? poniendo las definiciones después de llamar a babel. El problema de este método es que no está bien integrado con babel y por ese lado puede dar problemas, ya babel activa algunos cambios al llegarse al \begin{document}.

Si embargo existe una forma más elegante e integrada con spanish y babel. En el preámbulo del documento hay que añadir lo siguiente, por ejemplo, para cambiar Bibliografía por Referencias y Tabla por Cuadro

\addto\captionsspanish{%
\def\bibname{Referencias}%
\def\tablename{Cuadro}%
}
Y así con todos los nombres necesarios. La lista de nombres está en los dos lugares siguientes
TEXMF/tex/generic/babel/spanish.ldf
TEXMF/tex/generic/babel/spanish.tex
Nunca deben modificarse los ficheros spanish.ldf y spanish.tex directamente, ya que el documento resultante ya no sería universal, al procesarlo en un sistema distinto daría distinto resultado, y no sería posible acompañar el documento original con los archivos de estilo modificados puesto que la LPPL (la licencia bajo la que se distribuye LaTeX) no permite la distribución de versiones modificadas de éstos bajo el mismo nombre.

¿Por qué spanish.sty pone los meses en minúscula?

Ese es el uso aceptado en la actualidad. Documentos de la propia RAL lo hacen así. El María Moliner también. Véase la siguiente cita del María Moliner, 1990,

"7. Aunque entre los preceptos de la G.R.A. figura el de escribir con mayúscula los nombres de los meses, de los días de la semana y de las estaciones, [...] ha dejado decididamente de usarse la letra mayúscula en uno y otro de estos casos"

¿Por qué el spanish de babel reemplaza el punto decimal por una coma?

Las normas internacionales ISO establecen que ha de usarse coma para los decimales, excepto en aquellos países cuya tradición hace preferible el punto (la propia ISO usa coma en sus informes). Por ejemplo, en España, el punto decimal en España carece de fuerza legal y sólo la coma es oficialmente válida.

Sin embargo, hay países en los que el punto es de uso legal y otros como México, en los que, siendo la coma de uso legal, el uso del punto es también frecuente. Se puede cambiar el comportamiento predefinido por spanish con la orden \decimalpoint o \spanishdecimal{.} en el preámbulo, después de cargar babel. En unas pocas materias, como el análisis númerico o la estadística, es necesario distinguir la coma decimal de la coma para separar datos; en este caso se puede aumentar el espaciado de estas últimas con:

\makeatletter
\def\es@decimal{{\mathchar"613B}}
\mathcode`,="8000
\begingroup
\catcode`,=13
\gdef,{\mkern2mu\mathchar"613B\mkern8mu}
\endgroup
\makeatother
(Se pueden probar otros valores en lugar de 2 [antes] y 8 [después]. La unidad mu de TeX es para matemáticas [aprox. 1/18 em].)

¿Por qué spanish.sty pone los números romanos siempre en mayúscula?

Realmente no son mayúsculas, sino versalitas (small caps). En la tradición tipográfica española no se utilizan los números romanos en minúsculas, que se sustituyen por las versalitas. Por este motivo, el autor de spanish para babel, lo ha incluido en éste.

¿Por qué spanish.sty acentúa la I de Índice?

Así lo han sostenido los tratadistas más importantes sobre ortografía y tipografía desde hace más de un siglo: << La mayúsculas deben llevar la tilde que les corresponda >> (Sanmartí, 1907). La RAE finalmente lo ha considerado normativo en su ortografía de 1999: <<El empleo de las mayúsculas no exime de poner tilde cuando así lo exijan las reglas de acentuación >> (p. 31).

¿Por qué spanish para babel dice cuadro en lugar de tabla?

Tal y como se indica en el manual, el inglés table y el español tabla son falsos amigos. Para ser más precisos, podemos reproducir lo que dice el Diccionario académico:

Cuadro [...] 10. m. Conjunto de nombres, cifras u otros datos presentados gráficamente, de manera que se advierta la relación existente entre ellos.

Tabla [...] 12. f. Cuadro o catálogo de números de especie determinada, dispuestos en forma adecuada para facilitar los cálculos. Tabla de multiplicar, de logaritmos, astronómica.

El inglés table tiene un sentido mucho más general que el que tiene el español tabla, y así tendríamos tabla de logaritmos y tabla de multiplicar frente a cuadro de reyes medievales y cuadro de aminoácidos esenciales. En este aspecto el español tiene más riqueza y precisión que el inglés.

En fin, cuadro es todavía la forma más frecuente, la más castellana y tradicional, y la preferida por los mejores tipógrafos (Morato, Martínez Sicluna, Martínez de Sousa, etc.). Nada impide, por supuesto, redefinir el nombre si resultara que todos los cuadros de un documento son tablas, tal y como describe el manual y esta FAQ.

¿Cómo consigo que babel y spanish.sty no utilicen los atajos de teclado NUNCA?

Este ha sido un problema muy frecuente con babel y spanish, que ha dado como consecuencia que, por ejemplo, en las bibliografías nombres como "J.~N. Apellido" aparecieran como "J.Ñ. Apellido". Para solucionar este problema, spanish ofrece ahora la orden \deactivatetilden que elimina el uso de ~ para la eñe, al tiempo que preserva su función de espacio sin división (la orden \shorthandoff de babel cancela ambos usos). El estilo spanish también proporciona más facilidades para desactivar otras abreviaciones, que están descritas en spanish.dtx, por ejemplo \deactivatequoting en el preámbulo.

Sin embargo ésto y el que funcione correctamente ha cambiado mucho entre distintas versiones de babel lo que hace que a veces los documentos creados con una versión de babel no sean directamente portables a otros sistemas. Aunque es recomendable actualizarse a la última versión de spanish y babel en todos los ordenadores implicados, en caso de no poderse hacer, la siguiente línea (en LaTeX2e) en el preámbulo del documento elimina los atajos de teclado

\AtBeginDocument{\gdef~{\nobreakspace{}}\catcode`\"=12}
útil para documentos que se utilizarán en distintos ordenadores, alguno de ellos con versiones antiguas de babel o spanish.

6.8 ¿Cómo puedo indicar la abreviatura de los ordinales?

En LaTeX2e pueden utilizarse la órdenes \textordfeminine y \textordmasculine; por ejemplo, para abreviar María, escribimos M.\textordfeminine. Una variación de estas macros ha sido incorporada a spanish.sty versión 3.0 y extendida en la versión 4.0. Se invocan como "a y "o, respectivamente, con la posibilidad de usar \sptext para casos como 1\sptext{er}.

6.9 ¿Cómo forzar sangría después de las cabeceras?

El objetivo de esa sangría (indentation para los que no estén al tanto) es marcar claramente la separación de los párrafos. Como tal, es superflua después de una cabecera. Hay otros sitios en los que, no sólo es superflua, sino que es confusa, como después de un texto que ya va sangrado (entorno quote, \[ \], un array, etc.).

Sin embargo, es esencialmente una cuestión de gusto y de tradición tipográfica. Por ejemplo, en la tradición inglesa lo habitual es no sangrar, mientras que en la tradición hispana lo es el hacerlo. Por este motivo, spanish.sty fuerza sangría después de las cabeceras. La forma de anular este comportamiento es, según el manual de spanish, añadir (encapsulado en \makeatletter/\makeatother si se hace desde el texto)

\def\@afterindentfalse{\let\if@afterindent\iffalse}
\@afterindentfalse

Modificarlo en un estilo es bastante fácil. La mayoría de las secciones, etc. en LaTeX son algo así como (en art10.sty):

\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus
-1ex minus -.2ex}{2.3ex plus .2ex}{\Large\bf}}
\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus
 -2ex minus -.2ex}{1.5ex plus .2ex}{\large\bf}}
El cuarto parámetro, si es negativo, indica que no se debe sangrar en el primer párrafo tras la cabecera. Cámbiese a positivo si se desea sangría.

\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue
(encapsulado en \makeatletter/\makeatother si se hace desde el texto) forzará la sangría. Esta solución es la proporcionada en indentfirst.sty por David Carlisle.

6.10 ¿Cómo puedo escribir las funciones matemáticas en español?

Comentario: Hay gente que discute el que las funciones vayan en español y lleve acento el lím, máx, etc. Argumentan que los nombres vienen del latín y allí no había acentos (y que en inglés también vienen del latín, lo cual, por ejemplo, es claramente incierto con gcd). El caso es que en todos los libros tradicionales en castellano se escribía lím y máx con acento. Si últimamente no se hace es precisamente porque TeX (en inglés) no lo tiene así. Todavía estamos a tiempo de no cometer ese error:

El caso más común es el del seno que, en plain TeX, basta definirlo como

\def\sen{\mathop{\rm sen}\nolimits} % Sustituye a \sin
Análogamente,
\def\mcd{\mathop{\rm mcd}\nolimits} % Sustituye a \gcd

\def\senh{\mathop{\rm senh}\nolimits} % Sustituye a \sinh

\def\arcsen{\mathop{\rm arcsen}\nolimits} % Ni el arcsin ni el
% arccos originales dejan espacio entre arc y sin o cos.
Cuando la función en español tiene algún acento (sobre todo en la i), es más complicado:
\def\max{\mathop{\rm m\acute ax}}

\def\min{\mathop{\rm m\acute\mathchar"7010n}}

\def\inf{\mathop{\rm \acute\mathchar"7010nf}}

\def\lim{\mathop{\rm l\acute\mathchar"7010m}}

\def\limsup{\mathop{\rm l\acute\mathchar"7010m\, sup}} % El limsup
% y el liminf originales dejan espacio entre lim y sup o inf.

\def\liminf{\mathop{\rm l\acute\mathchar"7010m\, inf}}
Por último, adaptándolas de su definición original (ver pág. 361 del TeXbook) para poner el acento en las dos posibilidades de uso de mod hacemos:
\def\bmod{\mskip-\medmuskip \mkern5mu
  \mathbin{\rm m\acute od} \penalty900 \mkern5mu
  \mskip-\medmuskip}
\def\pmod#1{\allowbreak \mkern18mu ({\rm m\acute od}\,\,#1)}
En LaTeX se puede hacer de forma similar pero usando \newcommand o \renewcommand en lugar de \def.

6.11 ¿Qué verificadores ortográficos puedo utilizar para español?

ispell

ispell es un verificador ortográfico de uso libre que funciona en UNIX, aunque hay un port para emx en fase beta --que funciona o debe funcionar tanto en DOS (con 386 o superior) como en OS/2 2.x o en OS/2 Warp.

Para ispell existe lo siguiente:

El que hay en ftp.dante.de es de Julio Sánchez y el que hay en http://www.datsi.fi.upm.es/~coes es de Santiago Rodríguez srodri _AT_ fi.upm.es y Jesús Carretero jesus _AT_ fi.upm.es

Dependiendo de como se haya creado el diccionario de castellano es posible que deba llamarse a ispell como

ispell -t -T latin1 -d espanol fichero.tex
especificando explícitamente la codificación.

Excalibur

Para Macintosh, existe un verificador ortográfico de documentos LaTeX (y plain TeX) llamado Excalibur. Es gratis, aunque el copyright es del autor, Rick Zaccone (zaccone _AT_ bucknell.edu).

Excalibur puede conseguirse por ftp anónimo en ftp://sol.eg.bucknell.edu/pub/mac.

Juan Luis Varona (jvarona _AT_ dmc.unirioja.es) ha creado un diccionario con 292342 palabras (versión de septiembre de 1999) que funciona con Excalibur. Está realizado en formato de 7 bits, y la í la reconoce únicamente como \'{\i}. Pero puede modificarse si se desea. La versión más reciente puede encontrarse en ftp://tex.unirioja.es/pub/tex/dict-mac

Asimismo, en la dirección mencionada para Excalibur, en el directorio Excalibur-dictionaries, se encuentran disponibles los diccionarios de los distintos idiomas. El diccionario español puede encontrarse también en CTAN en

CTAN:systems/mac/support/excalibur/Spanish_Dictionary.sit.hqx

4spell

4spell es un verificador ortográfico para Windows (32 bits) que se distribuye bajo una licencia libre (concretamente la GPL) y tiene un diccionario de castellano. Puede encontrarse en CTAN:support/4spell

Winedt

El diccionario de Juan Luis Varona también se ha adaptado para su uso con el verificador ortográfico del entorno winedt para Windows. Está disponible en

ftp://tex.unirioja.es/pub/tex/dict-win

amspell

amspell es un verificador ortográfico para DOS. El diccionario de Juan Luis Varona también se ha adaptado para ser utilizado con amspell. La versión para amspell está disponible en

ftp://tex.unirioja.es/pub/tex/dict-pc
y amspell en
CTAN:support/amspell

6.12 ¿Cómo utilizo BibTeX en castellano?

Para esto hay dos aproximaciones,

Utilizar estilos adaptables (los abstyles)

Para que BibTeX funcione en español, Tomás Bautista ha modificado con babel una familia adaptable de estilos de BibTeX (también llamadas abstyles).

Con las abstyles se tiene la ventaja de utilizar un único estilo, de forma que el idioma de las referencias únicamente depende del elegido con babel. De este modo, si por h o por b, en cierto momento no se quiere el documento en inglés, sino por ejemplo en español o en alemán, sólo habría que cambiar la opción que corresponde en babel y no también el estilo puesto dentro del \bibliographystyle{estilo}.

Además, con las abstyles sólo es necesario un aplain.bst preparado para distintos idiomas, según lo elegido en babel. Están disponibles en CTAN:biblio/bibtex/contrib/abstyles-babel/.

Utilizar el paquete custom-bib

El paquete custom-bib (disponible en CTAN:macros/latex/contrib/supported/custom-bib/) permite crear estilos bibliográficos a medida, con una amplia serie de opciones y de idiomas. Para utilizarlo, una vez desempaquetado debe hacerse

latex makebst.tex
y responder a las (muchas) preguntas que se formulan. Es conveniente leerse previamente la documentación para ser consciente de qué se está preguntando en cada momento, ya que muchas de las preguntas no son obvias. El documento de Luis Seidel -- Véase la sección Tutoriales en castellano -- es una ayuda interesante al respecto.

El paquete spanish proporciona el fichero esbst.tex que es el que debe usarse como babelbst.tex para las adaptaciones al castellano. Si la distribución es antigua, este fichero puede estar prácticamente vacío y tener como único efecto que no aparezca un mensaje de error. En este caso es conveniente copiar el archivo esbst.tex de una versión reciente de spanish al directorio donde se va a utilizar el estilo .bst, con el nombre babelbst.tex, ya que es el nombre con que lo espera el estilo .bst creado.

6.13 ¿Cómo genero un índice alfabético con la ordenación correcta en castellano?

El problema con que uno se encuentra al utilizar makeindex es que no ordena correctamente las palabras con caracteres acentuados, ya que por ejemplo ordena la á como \'a que es lo que TeX escribe al archivo de índice y salvo que fuera la más reciente versión de makeindex de 8 bits ni siquiera las reconocería si estuvieran escritas directamente al archivo de índice como palabras acentuadas. A pesar de las limitaciones mencionadas para los idiomas que no pueden describirse mediante la tabla de caracteres de 7 bits, es posible utilizar makeindex en idiomas como el castellano. Para solucionar este problema hay varias aproximaciones:

Decir a makeindex cómo debe ordenar la palabra acentuada

Por ejemplo, para los acentos o para la ñ se introduciría la entrada al índice como

\index{optica@óptica}
\index{indice@índice}
\index{can^^ffa@caña}
y para una palabra compuesta como por ejemplo en
\index{optica electromagnetica@óptica electromagnética}

Utilizar el paquete esindex

esindex es un paquete desarrollado por Javier Bezos para facilitar la escritura de índices correctamente alfabetizados en castellano. Su única orden es \esindex que convierte su argumento a una forma adecuada. Por ejemplo,

\esindex{ca'n'on}
equivale a
\index{can^^ffon@ca'n'on}
Es necesario usar babel y que los acentos estén escritos en forma de abreviaciones ('a, 'e, etc.). El paquete utiliza ciertas órdenes internas de babel por lo su funcionamiento puede cambiar con versiones distintas a la 3.6.

Hay que señalar que con este paquete no se crea en el índice una entrada propia para la palabras que empiezan por eñe, sino que tan sólo se añaden al final de la ene. En el rarísimo caso de que hubiera palabras que empiezan por eñe habría que modificar el archivo .ind a mano. Este paquete puede encontrarse en

CTAN:macros/latex/contrib/supported/bezos/

Utilizar xindy

xindy es un sistema de indexación desarrollado inicialmente por Roger Kehr, del Instituto de Informática Teórica de Darmstadt, bajo la dirección de Joachim Schrod. xindy puede ser configurado fácilmente para adaptarse a las normas ortográficas de distintos idiomas, cada uno de ellos con un alfabeto distinto y con unas reglas de ordenación también distintas. xindy puede definir, para cada carácter del alfabeto, dónde debe ser éste ordenado (reglas de ordenación), así como a qué carácter o cadena es equivalente (reglas de equivalencia). Permite incluso definir reglas de ordenación de distinto nivel que pueden ser aplicadas de forma sucesiva. Este paquete puede encontrarse en /CTAN:indexing/xindy/ y su página web está en

http://xindy.sourceforge.net/
Actualmente, el propio Joachim Schrod mantiene xindy, y éste se ha incluido en TeXLive. En el paquete xindy existen reglas útiles para castellano, y pueden fácilmente crearse estilos que carguen las mismas y añadan únicamente las personalizaciones adecuadas.

Su uso es algo distinto del habitual en makeindex

xindy -o tu_fichero.ind -t tu_fichero.log -M estilo_xindy.xdy tu_fichero.idx
donde tex2xindy es un filtro que convierte sobre la marcha del formato habitual de los .idx al formato especial que utiliza xindy, estilo.xdy puede ser cualquiera de los dos mencionados (u otro cualquiera para otro idioma o particularizado por el autor del documento) y tu_archivo.idx es el que crea LaTeX a partir de las llamadas a \index.


Página siguiente Página anterior Índice general