babel \L 명령은 문자를 반전시키고 Ł 기호를 삽입합니다.

babel \L 명령은 문자를 반전시키고 Ł 기호를 삽입합니다.

이번 주의 Eyal의 바벨+히브리어(또는 오른쪽에서 왼쪽으로) 비호환성을 위한 시간입니다. 이번에는 다시 하이퍼참조입니다.

당신이 가지고 있다면:

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

당신은 다음을 얻습니다:

Ł 및 반전된 영어 텍스트

하이퍼참조 없이 바벨만 사용하면 다음과 같은 예상 효과를 얻을 수 있습니다 \L.

영어 텍스트가 제대로 나타납니다

이 문제는 해결하기 매우 쉽습니다. 하지만 방금 알아차렸고, 다른 babel+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이것은 Lifted from 의 정의입니다 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}

추신: 디버깅하는 동안 제가 겪은 성가신 문제는 왼쪽에서 오른쪽으로의 의미를 복원하자마자 Command \hebalef unavailable in encoding T1.오류가 발생하기 시작했다는 것입니다. 종료되지 않은 문자가 있다는 것을 알아차리는 데 오랜 시간이 걸렸습니다 \L{...(이전에는 Ł를 출력했지만 문자가 작동하는 히브리어 모드로 남아 있음).

관련 정보