Lo que he aprendido: establecer el idioma para XeLaTeX

Hoy he estado tratando de entender cómo van los diferentes paquetes de idiomas en LaTeX. La conclusión que he sacado es que si bien al compilar con pdflatex necesitábamos usar el paquete babel1, para xelatex cargamos el paquete polyglossia. Este paquete da la misma funcionalidad que babel quitando a su vez cosas que no son necesarias si usamos xelatex como puede ser la codificación, ya que xelatex maneja directamente UTF8

Podemos buscar los paquetes donde viven tanto xelatex como polyglossia como hicimos aquí, pero yo me vine arriba e instalé texlive-latex-extra que incluye muchos paquetes útiles entre ellos los que vamos a usar hoy. Son casi 600MB pero tengo el ordenador casi vacío y paso de andar localizando paquetes todo el día.

Pues simplemente tenemos que añadir estas líneas al preámbulo:

\usepackage{polyglossia}
\setmainlanguage[Opciones]{Idioma} % Idioma principal
\setotherlanguage[Opcions]{Idioma} % Otro idioma

Ya no se puede cargar el idioma como opción a lo babel. La manera de establecer idiomas en polyglossia tiene la ventaja de que podemos añadir opciones según el idioma, por ejemplo:

\usepackage{polyglossia}
\setmainlanguage[variant=british]{english} 
\setotherlanguage{spanish}

Podemos cambiar de idioma en el texto de dos maneras:

  • Para trocitos pequeños: \text⟨idioma⟩[op]{Texto}, por ejemplo, \textspanish{\today} escribirá 9 de febrero de 2017

  • Para trozos largos: usamos el entorno correspondiente al idioma, por ejemplo:

\begin{spanish}
Texto en español
\end{spanish}

Cualquiera de las dos opciones son útiles cuando queremos realizar una cita en el idioma original o para escribir el resumen del documento en varios idiomas, como me pasó a mí en la tesis.

Ahora nos falta cambiar el nombre que le da a las tablas. En el caso de babel podíamos directamente llamar al paquete con la opción es-tabla y ello gestionaba el tema, pero para polyglossia o no hay esa opción o yo no sé usarla. Tenemos que hacer, por lo tanto, lo que explican aquí, cambiar el nombre de los captions para español:

\addto\captionsspanish{%
  \renewcommand{\tablename}{Tabla}%
  \renewcommand{\listtablename}{Índice de tablas}%
}

Si usáis Pandoc, habréis visto que es muy listo y carga un paquete o el otro dependiendo de qué compilador estemos usando. Si le echamos un ojo a su plantilla para LaTeX veremos que pone:

\ifxetex
   \usepackage{polyglossia}
   \setmainlanguage{$mainlang$}
\else
   \usepackage[$lang$]{babel}
\fi

Si estamos trabajando con Pandoc con una plantilla personalizada, podemos cambiar este trozo de la siguiente manera si vamos a escribir el documento en castellano:

% Idioma

\ifxetex
  \usepackage{polyglossia}
  \setmainlanguage{spanish}

  % Tabla en lugar de cuadro
  \addto\captionsspanish{%
  \renewcommand{\tablename}{Tabla}%
  \renewcommand{\listtablename}{Índice de tablas}%
  }

\else
  \usepackage[spanish,es-tabla]{babel}
  % Para los acentos (xelatex no lo necesita)
  \usepackage[utf8]{inputenc} 
  \usepackage[T1]{fontenc}
  \usepackage{lmodern}
\fi

Así podemos compilar sin problema con pdflatex y xelatex y en ambos casos nos gestiona la codificación y el nombre de las tablas correctamente.


Nada más por hoy. Ya estamos un paso más cerca de ser dioses del LaTeX

Nobel 2012 por Micagoto vía Attribution Engine. LicenciaCC NC.

  1. Y os conté aquí cómo iba. 
Anuncios

Un pensamiento en “Lo que he aprendido: establecer el idioma para XeLaTeX

  1. Pingback: Curso no convencional de LaTeX: a vueltas con el idioma | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s