
Пришло время для несовместимости недели Эяля «Вавилон+Иврит» (или «справа налево»); и на этот раз это снова гиперссылка.
Если у вас есть:
\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{...
(раньше он выводил Ł, но оставался в режиме иврита, где символы работали).