\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}
다음을 생성합니다