히브리어로 된 \colorbox

히브리어로 된 \colorbox

\colorbox히브리어 및 pdflatex와 함께 (또는 프레임과 같은 파생물 ) 을 사용할 때 shadedbox색상 스택이 혼란스러워 보입니다.

pdfTeX 경고: pdflatex: 빈 컬러 페이지 스택 0이 나타납니다.

출력이 잘못되었습니다(검은색 배경색).

이 문제에 대한 해결 방법이 있습니까? (XeTeX/bidi가 작동한다는 것을 알고 있지만 [pdf]latex에도 어떤 방법이 있는지 알고 싶습니다.)

\documentclass{article}

\usepackage{color}
\definecolor{shadecolor}{rgb}{1, 0, 0}

\usepackage[hebrew]{babel}

\begin{document}
\colorbox{shadecolor}{test}
\end{document}

답변1

내 자신의 질문에 대답: 다음으로 포장하는 것이 \beginL...\endL작동하는 것 같습니다.

\documentclass{article}

\usepackage{color}
\definecolor{shadecolor}{rgb}{1, 0, 0}

\usepackage[hebrew]{babel}

\begin{document}
\beginL\colorbox{shadecolor}{test}\endL
\end{document}

상자의 AFAICS 히브리어 텍스트는 올바른 방향을 유지합니다.

답변2

귀하의 솔루션을 시도했는데 히브리어 텍스트가 이런 식으로 반전된 것 같습니다. 텍스트를 \beginR, 로 묶어야 할 것 같습니다 \endR. 예를 들어 다음 코드는 다음을 생성합니다.

\documentclass{article}

\usepackage{color}
\definecolor{shadecolor}{rgb}{1, 0, 0}

\usepackage[hebrew]{babel}

\begin{document}
    \beginL\colorbox{shadecolor}{שלום}\endL
    
    \beginL\colorbox{shadecolor}{\beginR שלום\endR}\endL
\end{document}

여기에 이미지 설명을 입력하세요

\beginL다음은 , 등을 수동으로 추가할 필요 없이 이 문제를 해결하는 방법입니다 \beginR(또한 수정됩니다 fcolorbox).

\documentclass{article}

\usepackage{color}
\definecolor{shadecolor}{rgb}{1, 0, 0}

\usepackage[hebrew]{babel}

\makeatletter
\long\def\color@b@x#1#2#3{%
    \leavevmode\if@rl\beginL\fi
    \setbox\z@\hbox{\kern\fboxsep{\set@color\if@rl\beginR\fi #3\if@rl\endR\fi}\kern\fboxsep}%
    \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@
    \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@
    {#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}%
            \box\z@}}\if@rl\endL\fi}
\makeatother

\begin{document}
    \colorbox{shadecolor}{שלום}
    
    \selectlanguage{english}
    \colorbox{shadecolor}{Hello}
\end{document}

다음을 생성합니다

여기에 이미지 설명을 입력하세요

관련 정보