
Una breve descripción del problema.
¿Cómo puedo insertar texto palabra por palabra en inglés en un párrafo en hebreo?
Una demostración del problema a través de un ejemplo mínimo de trabajo.
Considere el siguiente código LaTeX, guardado en el archivo ~/Test.tex
.
\documentclass{article}
\usepackage[bidi=basic,provide=*,english,hebrew]{babel}
\babelfont{rm}{FreeSerif}
\usepackage{enumitem}
\begin{document}
א
Hello, world!
א
\foreignlanguage{english}{Hello, world!}
א
\verb|Hello, world!|
א
%\foreignlanguage{english}{\verb|Hello, world!|}
\end{document}
El código se utiliza babel
para configurar el idioma principal del documento como hebreo y el idioma secundario del documento como inglés. Luego, en el cuerpo del documento, imprime cuatro oraciones en hebreo en las que está incrustada una frase en inglés. La frase en inglés termina con un signo de exclamación. El signo de exclamación debe considerarse parte de la frase en inglés y, por lo tanto, debe escribirse a la derecha de la frase en inglés.
Cuando se ejecutan los siguientes comandos en la Terminal:
> cd ~
> lualatex Test
~/Test.pdf
se crea el archivo . Cuando se abre en un visor de PDF, se muestra de la siguiente manera. (Tomo una captura de pantalla solo de la parte relevante de la pantalla).
Como se puede observar, en la primera frase el signo de exclamación está mal colocado. Esto se corrige en la segunda oración envolviendo la frase en inglés, incluido el signo de exclamación, dentro de un \foreignlanguage{english}{...}
comando. Desafortunadamente, el mismo truco falla cuando la frase en inglés es el argumento de un \verb
comando. Tuve que comentar la última línea de código en el cuerpo del documento porque de lo contrario el documento no se compilaría e ~/Test.log
incluiría el siguiente mensaje:
! Missing } inserted.
<inserted text>
}
l.18 \foreignlanguage{english}{\verb|Hello, world!|}
?
! Emergency stop.
<inserted text>
}
l.18 \foreignlanguage{english}{\verb|Hello, world!|}
End of file on the terminal!
El resultado deseado debe ser similar a la segunda línea tipográfica, excepto que la frase en inglés, incluido el signo de exclamación, debe escribirse usando la misma fuente que se usó para componerlas en la tercera línea tipográfica.
Respuesta1
\verb
dentro del argumento de otro comando es problemático. En el ejemplo, en lugar de \foreignlanguage
utilizar el babel
entorno , puedes otherlanguage
:
\documentclass{article}
\usepackage[bidi=basic,provide=*,english,hebrew]{babel}
\babelfont{rm}{FreeSerif}
\usepackage{enumitem}
\begin{document}
א
Hello, world!
א
\foreignlanguage{english}{Hello, world!}
א
\verb|Hello, world!|
א
\begin{otherlanguage}{english}\verb|Hello, world!|\end{otherlanguage}
\end{document}
En otro caso, usar \selectlanguage{english}
antes del texto y \selectlanguage{hebrew}
después también podría ser una alternativa.