
Tengo un documento en inglés en el que necesito insertar algunas palabras de ejemplo de muchos idiomas diferentes, incluidos el árabe y el persa.
Conseguí que funcionara con el babel
paquete y el \foreignlanguage{arabic}{الأحد}
comando, pero los caracteres aparecen confusos, presumiblemente debido a la función de derecha a izquierda (RTL). Si invierto manualmente todos los caracteres ( \foreignlanguage{arabic}{دحألا}
), aparentemente no se unen como se supone que deben hacerlo... nuevamente, debido a RTL.
La plantilla/estilo que me veo obligado a usar se compila pdflatex
pero NO xelatex
. Intentar utilizar el arabtex
paquete o bidi
paquetes rompe la plantilla con una serie de errores alucinantes.
¿Alguna sugerencia?
PD: copiar y pegar el fragmento de texto codificado en UTF-8 literal de mi editor de texto parece corregirse a RTL en este editor de intercambio de pila, por lo que no estoy seguro de poder brindarle una imagen completa del problema que estoy enfrentando. con... :(
EDITAR: aquí hay un MWE...
\documentclass[10pt]{article}
\usepackage[usenames]{color} %used for font color
\usepackage{amssymb} %maths
\usepackage{amsmath} %maths
\usepackage{booktabs}
\usepackage[utf8]{inputenc}
\usepackage[arabic,farsi,bulgarian,greek,magyar,frenchb,german,english]{babel}
\usepackage{CJKutf8}
\begin{document}
\begin{tabular}{p{1.8cm}ccccccc}
\toprule
Language & $\rho$ & 1 & 2 & 3 & 4 & 5 & 6 \\
\midrule
German & 0.568 & weißt & überrascht & teppich & schwäche & kompetent & verbündet \\
Hungarian & 0.506 & tegyünk & recepciós & leírás & oktat & visszaveti & rengette \\
French & 0.500 & envoyer & vélo & randonnée & blessure & mixte & matérialisme \\
Bulgarian & 0.505 & \foreignlanguage{bulgarian}{време} & \foreignlanguage{bulgarian}{болка} & \foreignlanguage{bulgarian}{самотен} & \foreignlanguage{bulgarian}{съдружие} & \foreignlanguage{bulgarian}{надделеят} & \foreignlanguage{bulgarian}{уязвимите} \\
Greek & 0.491 & \foreignlanguage{greek}{πόρτα} & \foreignlanguage{greek}{πατινάζ} & \foreignlanguage{greek}{εξοχή} & \foreignlanguage{greek}{επεξεργάζομαι} & \foreignlanguage{greek}{ορίζοντας} & \foreignlanguage{greek}{εδαφικός} \\
Arabic & 0.512 & \foreignlanguage{arabic}{الأحد} & \foreignlanguage{arabic}{كحض} & \foreignlanguage{arabic}{ةرافسلا} & \foreignlanguage{arabic}{ةظتكملا} & \foreignlanguage{arabic}{يثراك} & \foreignlanguage{arabic}{ددب} \\
Korean & 0.495 & \begin{CJK}{UTF8}{mj}비가\end{CJK} & \begin{CJK}{UTF8}{mj}기억\end{CJK} & \begin{CJK}{UTF8}{mj}무서운\end{CJK} & \begin{CJK}{UTF8}{mj}따라서\end{CJK} & \begin{CJK}{UTF8}{mj}왜곡\end{CJK} & \begin{CJK}{UTF8}{mj}지배하는\end{CJK} \\
Chinese & 0.482 & \begin{CJK}{UTF8}{gbsn}星期三\end{CJK} & \begin{CJK}{UTF8}{gbsn}司机\end{CJK} & \begin{CJK}{UTF8}{gbsn}要求\end{CJK} & \begin{CJK}{UTF8}{gbsn}动态\end{CJK} & \begin{CJK}{UTF8}{gbsn}翻新\end{CJK} & \begin{CJK}{UTF8}{gbsn}锲而不舍\end{CJK} \\
Persian & 0.433 & \foreignlanguage{farsi}{روزنامه} & \foreignlanguage{farsi}{فروشگاه} & \foreignlanguage{farsi}{درد} & \foreignlanguage{farsi}{فکری} & \foreignlanguage{farsi}{تقویت} & \foreignlanguage{farsi}{نزدیکی} \\
Japanese & 0.326 & \begin{CJK}{UTF8}{min}月\end{CJK} & \begin{CJK}{UTF8}{min}スキー\end{CJK} & \begin{CJK}{UTF8}{min}祭り\end{CJK} & \begin{CJK}{UTF8}{min}正直\end{CJK} & \begin{CJK}{UTF8}{min}地質\end{CJK} & \begin{CJK}{UTF8}{min}撤退\end{CJK} \\
\bottomrule
\end{tabular}
\end{document}
Las palabras árabe y persa (farsi) no me parecen correctas.
ACTUALIZACIÓN: Así es como se ve el resultado para mí. Como puede ver, el árabe y el persa (farsi) están al revés.
Respuesta1
Respuesta corta: en lugar de \foreignlanguage{arabic}
y \foreignlanguage{farsi}
, utilice \AR
y \FR
.
En primer lugar, el MWE dado en la pregunta (al menos a partir dela revisión actual) ciertamente no es mínimo. Aquí hay algo más corto:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[arabic,farsi,english]{babel}
\begin{document}
Arabic \foreignlanguage{arabic}{كحض}
Persian \foreignlanguage{farsi}{فروشگاه}
\end{document}
que produce
donde los textos árabe y persa no están escritos de derecha a izquierda como deberían.
Por qué sucede esto es fácil de explicar: la representación Unicode del texto árabe كحض consiste en
y se supone que estos tres puntos de código deben colocarse de derecha a izquierda (con reglas adicionales como las de las ligaduras), dando كحض. En cambio, cuando estos caracteres se colocan ingenuamente en el orden en que aparecen en la entrada (algo como: ك x ح x ض donde usé x para separar los caracteres), verá el tipo de salida incorrecta que ve arriba. (Lo mismo ocurre con el persa). Entonces, lo que falta son las instrucciones para que TeX coloque los caracteres en el orden correcto.
Esto parece ser un error en elBabelsoporte del paquete para estos idiomas. Algunos comentarios sobre preguntas relacionadas (1,2) hace referencia a un \textRL
comando: cargar el paquete babel \usepackage[arabic,farsi,english]{babel}
como se muestra arriba define un \textRL
comando, pero esto tiene un error: \show\textRL
muestra que se expande para \expandafter \@farsi@R {#1}
que el segundo idioma seleccionado anule el primero.
Una mirada más cercana a los registros revela que este \textRL
comando proviene dearabi
cargado por babel, cuya documentación menciona este problema y dice que \textRL
está en desuso. En cambio, lo que recomienda es \AR
y \FR
para árabe y farsi respectivamente. Entonces podemos usarlos en nuestro MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[arabic,farsi,english]{babel}
\begin{document}
Arabic \AR{كحض}
Persian \FR{فروشگاه}
\end{document}
que produce correctamente:
Para los que no son MWE en la pregunta, podemos simplemente reemplazar ciegamente \foreignlanguage{arabic}
y \foreignlanguage{farsi}
con \AR
y \FR
respectivamente, para obtener este resultado: