Como incorporar texto literal em inglês dentro de um parágrafo em hebraico?

Como incorporar texto literal em inglês dentro de um parágrafo em hebraico?

Uma breve descrição do problema

Como posso incorporar texto literal em inglês em um parágrafo hebraico?

Uma demonstração do problema por meio de um exemplo prático mínimo

Considere o seguinte código LaTeX, salvo no arquivo ~/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}

O código usa babelpara configurar o idioma principal do documento como hebraico e o idioma secundário do documento como inglês. Depois, no corpo do documento, imprime quatro frases em hebraico nas quais uma frase em inglês está incorporada. A frase em inglês termina com um ponto de exclamação. O ponto de exclamação deve ser considerado parte da frase em inglês e, portanto, deve ser escrito à direita da frase em inglês.

Quando os seguintes comandos são executados no Terminal:

> cd ~
> lualatex Test

o arquivo ~/Test.pdfé criado. Quando aberto em um visualizador de PDF, ele é exibido da seguinte forma. (Eu faço uma captura de tela apenas da parte relevante da tela.)

Um documento bilíngue hebraico-inglês

Como pode ser visto, na primeira frase o ponto de exclamação está posicionado incorretamente. Isso é corrigido na segunda frase envolvendo a frase em inglês, incluindo o ponto de exclamação, dentro de um \foreignlanguage{english}{...}comando. Infelizmente, o mesmo truque falha quando a frase em inglês é o argumento de um \verbcomando. Tive que comentar a última linha do código no corpo do documento porque caso contrário o documento não seria compilado e ~/Test.logincluiria a seguinte mensagem:

! 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!

A saída desejada deve ser semelhante à segunda linha da composição, exceto que a frase em inglês, incluindo o ponto de exclamação, deve ser composta usando a mesma fonte usada para compor na terceira linha da composição.

Responder1

\verbdentro do argumento de outro comando é problemático. No exemplo, você pode em vez de \foreignlanguageusar o babelambiente 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}

Olá Mundo!

Em outro caso, usar \selectlanguage{english}antes e \selectlanguage{hebrew}depois do texto também pode ser uma alternativa.

informação relacionada