
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 babel
para 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.)
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 \verb
comando. 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.log
incluiria 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
\verb
dentro do argumento de outro comando é problemático. No exemplo, você pode em vez de \foreignlanguage
usar o babel
ambiente 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}
Em outro caso, usar \selectlanguage{english}
antes e \selectlanguage{hebrew}
depois do texto também pode ser uma alternativa.