¿Cómo insertar texto palabra por palabra en inglés dentro de un párrafo en hebreo?

¿Cómo insertar texto palabra por palabra en inglés dentro de un párrafo en hebreo?

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 babelpara 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.pdfse 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).

Un documento bilingüe hebreo-inglés.

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 \verbcomando. 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.logincluirí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

\verbdentro del argumento de otro comando es problemático. En el ejemplo, en lugar de \foreignlanguageutilizar el babelentorno , 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}

¡Hola Mundo!

En otro caso, usar \selectlanguage{english}antes del texto y \selectlanguage{hebrew}después también podría ser una alternativa.

información relacionada