如何在希伯來段落中嵌入英文逐字文本?

如何在希伯來段落中嵌入英文逐字文本?

問題的簡要描述

如何在希伯來段落中嵌入逐字英文文本?

透過一個最小的工作範例來演示問題

考慮以下保存在文件中的 LaTeX 程式碼~/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}

此程式碼用於babel將文件的主要語言配置為希伯來語,將文件的次要語言配置為英文。然後,在文檔正文中,它會列印四個嵌入英語短語的希伯來語句子。英語短語以感嘆號結尾。感嘆號被視為英語短語的一部分,因此應排版在英語短語的右側。

當在終端機中執行以下命令時:

> cd ~
> lualatex Test

文件~/Test.pdf已建立。在 PDF 檢視器中開啟時,顯示如下。 (我只截圖了顯示的相關部分。)

希伯來語-英語雙語文檔

可以看出,第一句話中感嘆號的位置錯誤。透過將英語短語(包括感嘆號)包含在命令內,可以在第二句中修正此問題\foreignlanguage{english}{...}。不幸的是,當英語短語作為命令的參數時,同樣的技巧會失敗\verb。我必須註解掉文檔正文中的最後一行程式碼,否則該文檔將無法編譯,並且~/Test.log將包含以下訊息:

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

所需的輸出應與第二排版行類似,但英語短語(包括感嘆號)應使用與在第三排版行中排版它們的字體相同的字體進行排版。

答案1

\verb在另一個指令的參數內部是有問題的。在範例中,您可以不\foreignlanguage使用babel環境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}

你好世界!

在其他情況下,\selectlanguage{english}在文字之前和\selectlanguage{hebrew}之後使用也可以是一種替代方法。

相關內容