Objetivo: realizar los preparativos básicos para poder escribir correctamente texto en español.
A poco que hayas enredado con lo explicado en el capítulo anterior te habrás dado cuenta de un problema importante: ¿dónde están nuestros acentos?, ¿por qué no sale la letra eñe?
, tal cual, no entiende el español.
Estrictamente, solo comprende el limitado juego de caracteres ASCII, sistema que no sabe nada de acentos ni de caracteres propios de otras lenguas aparte del inglés.
Para poder generar todos estos símbolos, ofrece dos aproximaciones: una engorrosa y otra elegante.
La engorrosa consiste en introducir comandos especiales cada vez que se necesita uno de esos símbolos. Por ejemplo, para escribir la frase «un camión trasladaría a todo el rebaño», deberíamos hacerlo así:
un cami\'on trasladar\'ia a todo el reba\~no
Observa el uso de \'
y de \~
para generar el símbolo adecuado sobre la letra que aparece a continuación.
Descuida, que no voy a pedirte que hagas eso por cada acento que tengas que escribir, ya que resuelve esto con elegancia empleando paquetes.
Un paquete no es más que un módulo que extiende la funcionalidad de . Hay, literalmente, miles de ellos, capaces de hacer casi cualquier cosa que puedes imaginar relacionada con la tipografía digital.
Para utilizar un paquete disponemos del comando \usepackage
, al que le sigue, entre llaves, el nombre del paquete:
\usepackage{paquete}
En el caso de que el paquete admita parámetros opcionales, deberán facilitarse entre corchetes y posicionados antes que las llaves:
\usepackage[opciones]{paquete}
Vete familiarizando con este tipo de usos de llaves y corchetes: las llaves se emplean en los comandos para facilitar argumentos obligatorios, mientras que los corchetes para los opcionales.
Para poder utilizar los paquetes deben estar cargados en nuestro sistema. Por lo general, cualquier distribución incluye directamente los más comunes. Hay algunas que, si no detectan la presencia de un determinado paquete, tratan de conectarse a internet para descargarlo e instalarlo sin necesidad de que el usuario intervenga.
Vamos a utilizar dos paquetes para realizar una preparación básica de nuestro documento: babel y inputenc.
El paquete babel se ocupará de lidiar con partilaridades propias de nuestro idioma, como la subdivisión de sílabas (en el caso de que tenga que romper palabras al final de la línea), el título de las secciones (como Capítulo en lugar de Chapter) y un buen número de consideraciones propias de nuestro lenguaje.
El paquete inputenc se ocupa de traducir otras codificaciones de caracteres para que las entienda. Es el que se va ocupar por nosotros de gestionar todo el trasiego que a mano sería engorroso.
Estos dos comandos se ocupan de preparar nuestro sistema:
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
Observa cómo, en ambos casos, pasamos parámetros adicionales usando los corchetes.
En babel, pensado para multitud de idiomas, indicamos expresamente que optamos por el español. En inputenc, pensado para buen número de codificaciones, indicamos que emplearemos Unicode (utf8) como codificación de entrada. Otra opción que también podría servir es el alfabeto latino (latin1).
La ventaja de usar Unicode es que no sólo vamos a tener a nuestro disposición los caracteres de nuestro idioma, sino virtualmente los de cualquier otro, incluso los kanjis japoneses (si somos capaces de generarlos en nuestra interfaz).
Estos dos comandos debemos situarlos en el preámbulo, que es la zona comprendida entre \documentclass
y \begin{document}
.
Es en el preámbulo donde situaremos los paquetes que extenderán la funcionalidad de .
El siguiente ejemplo muestra un código más elaborado preparado para escribir en espanol correctamente.
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
Para escribir en español y que nos salgan las eñes y demás acentos nuestros, así como
para otras funciones como los guiones al final de la línea, es necesario usar
los paquetes babel e inputenc.
\end{document}
A medida que vaya creciendo tu pericia en irás descubriendo nuevos paquetes que te ayudarán a personalizar tu experiencia. Lo preámbulos ya no serán tan simples como en el ejemplo anterior, y no será mala idea que te crees plantillas con configuraciones típicas, algo que, sin duda, te ahorrará mucho tiempo después.
Javier Montero Gabarró
Fecha de la última revisión: 10 de octubre de 2012
El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)
El Club del Autodidacta
Índice completo de artículos relacionados con .
Oye Javi tengo un problema por mas que he añadido mil veces el comando del utf 8, no consigo que se compilen las ñ ni los acentos ¿que estaré haciendo mal?
No te preocupes: envíame por correo el código fuente (el fichero .tex) y lo reviso. Será una tontería.
Lo mas probable es que el error este entre el computador y la silla
Gracias Javi ya lo he arreglado, no me preguntes como por que no lo sé, de todas maneras mañana te mando un correo con el código fuente por que por mas que use l que dices aquí no hubo manera.
Hola Javier,
Quería preguntarte una cosilla sobre el uso del paquete en español. Yo tengo un archivo principal, donde incluyo las siguientes sentencias:
%(otros \usepackage)
\usepackage[latin1]{inputenc}
\usepackage[spanish, es-tabla]{babel}
\begin{document}
%Aqui mas cosas, portada, agradecimientos, etc
%Y ahora aqui voy llamando a los capitulos, que están escritos en archivos separados
\input{chapter1.tex}
\input{chapter2.tex}
\input{chapter3.tex}
\input{chapter4.tex}
%otras cosas
\end{document}
Los archivos chapter1.tex y etc comienzan directamente asi
\chapter{\Introducci\’on}
\section{Primera secci\’on}
Blablabla….
El problema es que dentro de cada uno de estos archivos separados ya no se aplican las ventajas del paquete spanish y tengo que escribir las vocales con tilde y la ñ como si nunca hubiese definido \usepackage[latin1]{inputenc} ni \usepackage[spanish, es-tabla]{babel} en el archivo principal
¿Sabrías por qué puede ser? Ya he comprobado que pegar de nuevo los dos usepackage dentro del archivo del capítulo no es la solución :/
Muchísimas gracias por tu ayuda.
Alfonso.
¡Qué tal, Alfonso!
Utiliza utf8 en lugar de latin1.
Saludos
Muchas gracias, Javier!
Ahora va como la seda 🙂
Saludos
Hola Javier, tengo el mismo problema que explicó Alfonso, utilizo utf8 y no soluciono el problema. Tendrás otra idea?
Saludos
Qué tal, Mireya. Mándame un fragmento de tu código y lo reviso.
Saludos
Tengo el mismo problema de Mireya
Hola, por más que añado «packages» no consigo que se compilen los acentos. ¿Alguna sugerencia?
Éste es mi código
\documentclass[12pt]{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\title{TRIGONOMETRÍA PLANA Y RESOLUCIÓN DE TRIÁNGULOS. APLICACIONES}
\author{Carlos Castillo Pérez}
\date{\today}
\maketitle
\end{document}
Hola Javier, lo primero muchas gracias por estos tutoriales sobre Latex.
Soy totalmente novato en el tema y tengo muchas dudas, pero una me esta volviendo loco y es el tema de los acentos y las ñ.
Estoy pasando un guión de TV que escribí hace unos años a formato novela y he empezado escribiendo con libreoffice. El caso es que me he acordado que un conocido que tenia que es matematico me paso unos textos por Latex y me quedo maravillado de como se veia y lo bien maquetado que quedaba.
Soy usuario de OSX y he instalado mactex20120701. El caso es que he empezado a copiar lo que tengo escrito y me dan errores las tildes y ñ. Si lo hago a «la vieja usanza» tipo La monta\~n o la ca\’ida me genera bien la previsualizacion, pero claro es un coñazo hacer todo eso en lo que tengo ya escrito.
He copiado uno de tus ejemplos y tambien me da error:
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
Para escribir en español y que nos salgan las eñes y demás acentos nuestros, así como
para otras funciones como los guiones al final de la línea, es necesario usar
los paquetes babel e inputenc.
\end{document}
No me genera la vista previa y me dice:
Package inputenc Error: Keyboard character used is undefined (inputenc) in inputencoding `utf8′.
See the inputenc package documentation for explanation.
Al instalar el pkg que te digo para OSX me ha instalado varios programas, yo estoy usando Textshop y luego hay otro llamado Text live utility que entiendo es un repositorio de updates y packages y no se si me falta instalar alguno para que funcione el tema del utf8.
Te agradeceria enormemente si me puedes ayudar para asi poder seguir avanzando con la novela.
Un saludo y muchas gracias de antemano!
Ok, he descubierto por qué.
Al guardar el archivo tex por defecto me lo guardaba con un encoding occidental (MAC OS Roman).
He ido a preferencias del textshop y en codificación de caracteres he elegido por defecto Unicode (UTF-8) y ahora al guardarlo ya me lo genera bien. Malditos encoding 😉
¡Qué tal!
En efecto. Hasta que todos los sistemas no hayan evolucionado definitivamente a Unicode me temo que tendremos que lidiar con estos inconvenientes.
Saludos
Por favor me podrias explicar detalladamente que hiciste para resolverlo
Por cierto, el alfabeto latin1 da problemas de compilación……es mejor emplear el utf8, como dices.
Muchas gracias por la explicación! Me sirvió muchísimo!! 🙂
Me alegro de que te sea útil. ¡Bienvenida al mundo LaTeX!
Muchas gracias! Me funciono a la perfeccion los siguientes comandos.
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
Hola!!!
Mi problema es que no acepta el package babel en un documento clase book. Loa acentos, etc salen bien pero en vez de Índice sale Contents. Ya actualicé el texlive-lang-spanish.
Desde ya muchas gracias.
Buenas! ante todo gracias por los manuales!!
Tengo una duda, ¿se puede cambiar únicamente el idioma para un capítulo concreto en la clase book?
Gracias!