Команда babel \L меняет местами буквы, вставляет символ Ł

Команда babel \L меняет местами буквы, вставляет символ Ł

Пришло время для несовместимости недели Эяля «Вавилон+Иврит» (или «справа налево»); и на этот раз это снова гиперссылка.

Если у вас есть:

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

Вы получаете следующее:

Ł и перевернутый английский текст

если вы используете только babel без hyperref, вы получите ожидаемый эффект \L:

Английский текст отображается правильно

Это довольно легко обойти - но я только что это заметил, я думал, что это какая-то странная часть моей другой проблемы совместимости babel+hyperref. Зачем hyperref это делает?

Для тех, кому интересно, вотнекоторая информация о символе Ł.

решение1

Вот очевидный обходной путь:

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

Это определение \Lвзято из rlbabel.def. В качестве альтернативы, если вы помните, что не следует использовать \Lсам по себе, не переопределяйте его, просто используйте что-то вроде \def\babelL{\protect\pL}.

решение2

Видимо, они предвидели, что это \Lвызовет споры, поэтому rlbabel предоставляет макрос для восстановления его определения.

\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 Досадная проблема, с которой я столкнулся во время отладки, заключалась в том, что как только я восстановил значение слева направо, я начал получать Command \hebalef unavailable in encoding T1.ошибки. Мне потребовалось много времени, чтобы заметить, что у меня был нетерминированный \L{...(раньше он выводил Ł, но оставался в режиме иврита, где символы работали).

Связанный контент