在 tikz 和背景包中使用不透明度

在 tikz 和背景包中使用不透明度

我尝试取一个给定的图形,使其稍微白一些,并将结果放在页面中间在下面文本,使用包背景。

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{background}
\begin{document}

\SetBgContents{
\begin{tikzpicture}
    \node(0,0) {\includegraphics[scale=.1]{logo}};
    \node(0,0)[fill opacity=.5,fill=black]
     {\phantom{\includegraphics[scale=.1]{logo}}};
 \end{tikzpicture}
 }
\SetBgOpacity{1}\SetBgAngle{0}\SetBgScale{1}\SetBgPosition{current page.north}\SetBgAnchor{below}

text
\phantom{
\begin{tikzpicture}
    \node(0,0)[fill opacity=.5,fill=black]{a};
 \end{tikzpicture}}

\end{document}

为我工作并产生

在此处输入图片描述

这些都是什么\phantom?我明白了。但那是我的问题!(第一个幻影是为了让我的生活更轻松,这样盒子就会覆盖图像)如果我删除第二个幻影(当然还有它的参数),透明度就不再起作用了。我得到以下结果:

在此处输入图片描述

没错,不再透明了!我不知道这是为什么……有什么帮助吗?

(好像事情还不够奇怪,填充不透明度必须相同才能工作,即即使使用 \phantom,如果填充不透明度不同,图像也会被隐藏!)

答案1

我认为 Gonzalo 需要解释为什么会出现这种情况,但我可以用命令解决您的问题\newpage。这可能与该包内部background使用一个有关,afterpage或许如果只有一页,那就不能完美地工作。

我之所以发现这一点,是因为我最初的例子使用lipsum包来生成文本,而默认的文本会覆盖两页。在慢慢将您的例子修改为我的例子时,当我删除时,出现了奇怪的行为lipsum,这看起来太愚蠢了!如何lipsum解决这个问题?然后我发现页数很重要。所以这是一个可行的例子:

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{background}

\SetBgOpacity{1}
\SetBgAngle{0}
\SetBgScale{1}
\SetBgPosition{current page.north}
\SetBgAnchor{below}

\SetBgContents{
\begin{tikzpicture}
    \node (a) at (0,0) {\includegraphics[scale=.1]{Htree}};
    \filldraw[fill opacity=.5,fill=black] (a.north west) rectangle (a.south east);
 \end{tikzpicture}
 }
\begin{document}

text
\newpage
text

\end{document}

请注意,此渲染正确两个都页。

\phantom顺便说一句,我通过标记包含图形的节点并使用节点锚点在顶部绘制矩形来摆脱第一个。

如果没有这个\newpage,我得到的是填充的矩形。我还收到以下错误xpdf

Error: ExtGState 'pgf@CA1' is unknown
Error: ExtGState 'pgf@ca1' is unknown
Error: ExtGState 'pgf@CA1' is unknown
Error: ExtGState 'pgf@ca1' is unknown
Error: ExtGState '[email protected]' is unknown
Error: ExtGState 'pgf@CA1' is unknown
Error: ExtGState 'pgf@ca1' is unknown
Error: ExtGState 'pgf@CA1' is unknown
Error: ExtGState 'pgf@ca1' is unknown
Error: ExtGState '[email protected]' is unknown

但是当文档至少有 2 页时,我就能得到应有的所有内容,并且没有任何错误。

相关内容