
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 pdflatex
ergibt die erwartete Ausgabe:
Das Kompilieren xelatex
führt jedoch zu folgendem merkwürdigen Verhalten:
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 \textcolor
ein Benutzer \reset@color
nicht weiß, welche Farbe wiederhergestellt werden soll.
Das Problem entsteht, wennProjektorkommt ins Spiel. Im Wesentlichen ist die Geschichte wie folgt:
- GrafikLadungen
pdftex.def
oderxetex.def
entsprechend dem aktuellen Compiler. pdftex.def
wird definieren\reset@color
;
xetex.def
wird definieren\reset@color@nostack
und\reset@color@stack
.- Projektordefiniert neu
\reset@color
. xetex.def
wird entscheiden, ob\reset@color@nostack
oder\reset@color@stack
wird 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@color
wird 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@color
gemacht .xetex.def