Der Befehl babel \L kehrt Buchstaben um und fügt das Symbol Ł ein

Der Befehl babel \L kehrt Buchstaben um und fügt das Symbol Ł ein

Es ist Zeit für Eyals Babel+Hebräisch-Inkompatibilität (oder von rechts nach links) der Woche; und dieses Mal ist es wieder Hyperref.

Wenn Sie haben:

\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{hyperref}
\begin{document}
\selectlanguage{hebrew}
מלל בעברית, \L{Some English within the Hebrew} ועוד עברית לאחר מכן.
\end{document}

Sie erhalten Folgendes:

Ł und umgekehrter englischer Text

wenn Sie nur Babel ohne Hyperref verwenden, erhalten Sie den erwarteten Effekt \L:

Englischer Text wird richtig angezeigt

Das lässt sich ziemlich einfach umgehen – aber ich habe es gerade erst bemerkt und dachte, es wäre ein seltsamer Teil meines anderen Kompatibilitätsproblems zwischen Babel und Hyperref. Warum sollte Hyperref das tun?

Für Interessierte gibt es hiereinige Informationen zum Ł-Charakter.

Antwort1

Hier ist die offensichtliche Problemumgehung:

\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{hyperref}
\def\L{\protect\pL}
\begin{document}
\selectlanguage{hebrew}
מלל בעברית, \L{Some English within the Hebrew} ועוד עברית לאחר מכן.
\end{document}

Dies ist die Definition von , die \Laus übernommen wurde rlbabel.def. Wenn Sie sich alternativ daran erinnern, nicht \Lsich selbst zu verwenden, definieren Sie es nicht neu, sondern verwenden Sie einfach etwas wie \def\babelL{\protect\pL}.

Antwort2

Offenbar haben sie vorausgesehen, dass es \Lzu Konflikten kommen würde, daher stellt rlbabel ein Makro bereit, um die Definition wiederherzustellen.

\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{hyperref}
\HeblatexRedefineL  % this stands for \def\L{\protect\pL}
\begin{document}
\selectlanguage{hebrew}
מלל בעברית, \L{Some English within the Hebrew} ועוד עברית לאחר מכן.
\end{document}

PS: Ein nerviges Problem, auf das ich beim Debuggen gestoßen bin, war, dass ich Fehler bekam, sobald ich die Bedeutung von links nach rechts wiederhergestellt hatte Command \hebalef unavailable in encoding T1.. Es dauerte lange, bis ich bemerkte, dass ich ein nicht beendetes Zeichen hatte \L{...(zuvor gab es Ł aus, blieb aber im hebräischen Modus, in dem die Zeichen funktionierten).

verwandte Informationen