\colorbox mit Hebräisch

\colorbox mit Hebräisch

Bei der Verwendung von a \colorbox(oder Ableitungen wie shadedbox) von framed mit Hebräisch und pdflatex scheint es im Farbstapel zu Verwirrung zu kommen:

pdfTeX-Warnung: pdflatex: leerer Farbseitenstapel 0 wird angezeigt

und die Ausgabe ist falsch (schwarze Hintergrundfarbe).

Gibt es eine Problemumgehung für dieses Problem? (Ich weiß, dass XeTeX/bidi funktioniert, möchte aber wissen, ob es auch in [pdf]latex eine Möglichkeit gibt.)

\documentclass{article}

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

\usepackage[hebrew]{babel}

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

Antwort1

Ich beantworte meine eigene Frage: Es scheint, dass das Umbrechen in Folgendes \beginL...\endLfunktioniert:

\documentclass{article}

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

\usepackage[hebrew]{babel}

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

Soweit ich weiß, bleibt der hebräische Text in der Box in der richtigen Richtung.

Antwort2

Ich habe Ihre Lösung ausprobiert und es scheint, dass der hebräische Text auf diese Weise umgekehrt wird. Ich denke, Sie müssen den Text mit \beginR, einschließen \endR. Der folgende Code erzeugt beispielsweise:

\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}

Bildbeschreibung hier eingeben

Dies lässt sich folgendermaßen beheben, ohne dass \beginL, \beginR, usw. manuell hinzugefügt werden müssen (und es behebt auch 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}

Daraus ergibt sich folgendes

Bildbeschreibung hier eingeben

verwandte Informationen