Xelatex und seltsames Textfarbenverhalten in Tikz

Xelatex und seltsames Textfarbenverhalten in Tikz

Hier ist ein minimales funktionierendes Beispiel:

\documentclass{beamer}
\usepackage{tikz}

\setbeamercolor{background canvas}{bg=black}
\setbeamercolor{normal text}{fg=white}

\begin{document}

\begin{frame}
\frametitle{Test}

Normal \textcolor{red}{Red} Normal

\begin{tikzpicture}
\node at (0,0) {Normal \textcolor{red}{Red} Normal};
\end{tikzpicture}

\end{frame}

\end{document}

Das Kompilieren pdflatexergibt die erwartete Ausgabe: Bildbeschreibung hier eingeben

Das Kompilieren xelatexführt jedoch zu folgendem merkwürdigen Verhalten: Bildbeschreibung hier eingeben

Der folgende Text \textcolor{red}{Red}scheint in standardmäßig wieder schwarz zu sein xelatex. Gibt es eine Möglichkeit, dies zu beheben?

Antwort1

Es gibt ähnliche Fragen, zum Beispiel:

Die Hauptfrage besteht darin, dass am Ende \textcolorein Benutzer \reset@colornicht weiß, welche Farbe wiederhergestellt werden soll.


Das Problem entsteht, wennkommt ins Spiel. Im Wesentlichen ist die Geschichte wie folgt:

  1. Ladungen pdftex.defoder xetex.defentsprechend dem aktuellen Compiler.
  2. pdftex.defwird definieren \reset@color;
    xetex.defwird definieren \reset@color@nostackund \reset@color@stack.
  3. definiert neu \reset@color.
  4. xetex.defwird entscheiden, ob \reset@color@nostackoder \reset@color@stackwird das sein \reset@color.

Hier1,2,3geschieht bei \documentclass{beamer}und4passiert um \begin{document}.

Jetzt sehen Sie ein Problem: für XeLaTeX, da4passiert nach3, reset@colorwird als Nicht-Beamer-Version neu definiert.


Der folgende Code veranschaulicht den Unterschied deutlicher

\documentclass{beamer}
\usepackage{tikz}

\setbeamercolor{background canvas}{bg=teal}
\setbeamercolor{normal text}{fg=white}

\begin{document}

\frame{
    \tikz{
        \node[text=yellow]{
            Yellow
            \textcolor{red}{Red}
            What?
        };
    }
}

\end{document}

LaTeX gibt

und XeLaTeX gibt

Keines von beiden wird erwartet. Was wir wollen, ist Gelb. Aber widerwillig ist Weiß besser als Schwarz. Und Weiß wird tatsächlich von der Beamer-Version von und Schwarz von der Version \reset@colorgemacht .xetex.def

verwandte Informationen