这是一个最小的工作示例:
\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}
后面的文本\textcolor{red}{Red}
似乎默认恢复为黑色xelatex
。有办法修复这个问题吗?
答案1
还有类似的问题,例如:
\textcolor
主要的问题是,最后\reset@color
不知道要恢复什么颜色才是正确的。
问题出现在投影机基本上故事是这样的:
- 图形加载
pdftex.def
或xetex.def
根据当前编译器。 pdftex.def
将定义\reset@color
;
xetex.def
将定义\reset@color@nostack
和\reset@color@stack
。- 投影机重新定义
\reset@color
。 xetex.def
将决定\reset@color@nostack
是否\reset@color@stack
成为\reset@color
。
这里1,2,3发生在\documentclass{beamer}
和4发生在\begin{document}
。
现在你可以看到一个问题:对于 XeLaTeX,由于4发生于3,reset@color
被重新定义为非光束版本。
下面的代码更清楚地说明了区别
\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 提供
XeLaTeX 给出
两者都不是预期的。我们想要的是黄色。但无奈的是,白色比黑色好。白色确实是由 Beamer 版本完成的,\reset@color
而黑色是由xetex.def
版本完成的。