
Eine kurze Beschreibung des Problems
Wie kann ich wörtlichen englischen Text in einen hebräischen Absatz einbetten?
Eine Demonstration des Problems anhand eines minimalen Arbeitsbeispiels
Betrachten Sie den folgenden LaTeX-Code, der in der Datei gespeichert ist ~/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}
Der Code babel
konfiguriert die Hauptsprache des Dokuments als Hebräisch und die Zweitsprache des Dokuments als Englisch. Anschließend werden im Hauptteil des Dokuments vier hebräische Sätze gedruckt, in die eine englische Phrase eingebettet ist. Die englische Phrase endet mit einem Ausrufezeichen. Das Ausrufezeichen ist als Teil der englischen Phrase zu betrachten und sollte daher rechts neben der englischen Phrase gesetzt werden.
Wenn die folgenden Befehle im Terminal ausgeführt werden:
> cd ~
> lualatex Test
die Datei ~/Test.pdf
wird erstellt. Beim Öffnen in einem PDF-Viewer wird sie wie folgt angezeigt. (Ich habe nur den relevanten Teil der Anzeige als Screenshot erstellt.)
Wie man sieht, ist das Ausrufezeichen im ersten Satz falsch positioniert. Dies wird im zweiten Satz korrigiert, indem die englische Phrase, einschließlich des Ausrufezeichens, in einen \foreignlanguage{english}{...}
Befehl eingeschlossen wird. Leider funktioniert derselbe Trick nicht, wenn die englische Phrase das Argument eines \verb
Befehls ist. Ich musste die letzte Codezeile im Hauptteil des Dokuments auskommentieren, da das Dokument sonst nicht kompiliert werden würde und ~/Test.log
die folgende Meldung enthalten würde:
! 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!
Die gewünschte Ausgabe sollte der zweiten Satzzeile ähneln, mit der Ausnahme, dass die englische Phrase, einschließlich des Ausrufezeichens, in derselben Schriftart gesetzt werden sollte, die auch für den Satz in der dritten Satzzeile verwendet wurde.
Antwort1
\verb
innerhalb des Arguments eines anderen Befehls ist problematisch. Im Beispiel können Sie stattdessen \foreignlanguage
die babel
Umgebung verwenden 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}
In anderen Fällen könnte auch die Verwendung \selectlanguage{english}
vor und \selectlanguage{hebrew}
nach dem Text eine Alternative sein.