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:
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
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.
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
.
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:
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:
En cualquier réplica del archivo GNU, en el
directorio recode
.
ftp://ftp.simtel.net/pub/simtelnet/gnu/gnuish/dos_only o en el mismo lugar en cualquier réplica del archivo simtel.
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/ o en el mismo lugar en cualquier réplica del archivo simtel.
En caso de no tener directamente binarios precompilados, suele ser sencillo compilar el programa a partir de las fuentes para cada sistema unix concreto.
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.
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
).
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:
T1
. Esto se logra
mediante un \usepackage[T1]{fontenc}
.\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.
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
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.
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.
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).
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)
language.dat
language.dat
. Dependiendo de la
distribución de TeX utilizada este archivo puede estar en
distintos lugares. Por ejemplo en TeXLive el árbol de
TeX parte de TEXMF=/usr/share/texmf
y el
archivo en cuestión está en
TEXMF/tex/generic/config/language.dat
. En el caso
de Debian/GNU-Linux, está en
/etc/texmf/language.dat
y el otro es un enlace a
éste.%
que está al principio de la linea
spanish
. Si mal no recuerdo viene preparado con
silabeo en alemán, si no lo quieren pongan un %
adelante. También viene predefinido inglés (o alguna de sus
variantes, por ejemplo american). Éste debe estar siempre
definido así que no debe desactivarse.nohyphenation
está activada (sin el comentario). Ésto
es muy útil cuando se quiere desactivar la partición de palabras.language.dat
está en
TEXMF\tex\generic\hyphen\local
o en
TEXMF\tex\generic\config
donde TEXMF
representa el punto del que parte el árbol de directorios
TeX
# texconfig hyphen latex
lanza un editor para cambiar el fichero language.dat
y
que, al cerrar el editor, genera los formatos
automáticamente, por lo que no es necesario hacer el paso
siguiente explícitamente.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.
plain
-TeXPor 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).
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:
\-
. Por ejemplo:
fotorrefractivo y electroóptico --> foto\-rre\-frac\-tivo y elec\-tro\-óptico
\hyphenation
. Por ejemplo:
\hyphenation{foto-rre-frac-tivo,elec-tro-óptico}
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.
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
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.
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.
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"
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].)
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.
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).
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.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.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.
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.
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.
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}
.
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.
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
.
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:
URL: | ftp://ftp.dante.de/tex-archive/language/spanish/ispell |
ARCHIVO: | castellano.aff.gz |
COMENTARIOS: | diccionario y parche elisp disponible en el mismo lugar. |
Véanse los archivos LEEME o README. |
URL: | http://www.datsi.fi.upm.es/~coes |
ARCHIVOS: | espa~nol.tar.gz |
COMENTARIOS: | incluye espa~nol.aff, lista de palabras,instrucciones |
y patrones de guionado para TeX en español. |
URL: | ftp://ftp.dante.de/tex-archive/language/spanish/ispell |
ARCHIVOS: | palabras.sq.gz |
COMENTARIOS: | archivo de afijos y parche elisp disponible en el mismo |
lugar. Véanse los archivos LEEME o README. |
URLs: | http://www.datsi.fi.upm.es/~coes |
ARCHIVOS: | espa~nol.tar.gz |
COMENTARIOS: | incluye espa~nol.aff, lista de palabras,instrucciones, |
y patrones de guionado para TeX en español. |
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.
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 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
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 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-pcy amspell en
CTAN:support/amspell
Para esto hay dos aproximaciones,
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/
.
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.
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:
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}
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/
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
.