我正在使用 baposter 包制作海报。可以有彩色框,但我希望每个框都有自己的背景(而不是海报本身)。可以吗?
答案1
请求的内容并不十分清楚,所以我猜想您希望在框内容下放置一张背景图片。我的方法是获取该内容并将其放置在\vbox
宏中
\setbox0=\vbox{<content>}
然后,我将背景图像放在其下方\ooalign
,如下所示
\ooalign{\includegraphics[width=\textwidth,height=\ht0]{example-image-A}\cr\box0}
我不是baposter
用户,所以不知道是否可以消除背景图像周围的小边框,甚至不知道如何在一张海报上放置多个框。
这是我的 MWE。我刚刚从这个问题中抓取了一些框内容:适合作为多张图片中节点的背景
\documentclass[b3paper]{baposter}
\usepackage{tikz,amsmath,graphicx}
\usetikzlibrary{fit}
\begin{document}
\begin{poster}{bgColorOne=blue!20!white,background=plain}{}{}{}{}
\begin{posterbox}[textborder=none,headerborder=none,span=3,boxColorOne=white]{title}
\setbox0=\vbox{%
\begin{align}
x &=
\begin{tikzpicture}[remember picture]
\node[circle,fill=red,minimum width=1cm] {};
\end{tikzpicture}
+
\begin{tikzpicture}[remember picture]
\node[circle,fill=cyan,minimum width=1cm] (first node) {};
\end{tikzpicture}
\\
y &=
\begin{tikzpicture}[remember picture]
\node[circle,fill=red,minimum width=1cm] {};
\end{tikzpicture}
+
\begin{tikzpicture}[remember picture]
\node[circle,fill=cyan,minimum width=1cm] (second node) {};
\end{tikzpicture}
+
\begin{tikzpicture}[remember picture]
\node[circle,fill=green,minimum width=1cm] (third node) {};
\end{tikzpicture}
\end{align}
\begin{tikzpicture}[remember picture,overlay]
\node[draw=red,fill=yellow,fill opacity=0.8,fit=(first node) (second node) (third node),rectangle] {};
\end{tikzpicture}%
}
\ooalign{\includegraphics[width=\textwidth,height=\ht0]{example-image-A}\cr\box0}
\end{posterbox}
\end{poster}
\end{document}
verbatimbox
我实际上可以通过加载我的包并调用\ooalign
as 来删除背景图像周围的 5pt 边框
\ooalign{\addvbuffer[-5pt]{\makebox[\textwidth]{\includegraphics%
[width=\dimexpr\textwidth+10pt\relax,height=\dimexpr\ht0+10pt\relax]{%
example-image-A}}}\cr\box0}
很可能有更好的方法来实现这一点。
答案2
以下是我的情况中用户需要的简短版本。我会在这里发布以供将来参考
\usepackage{etoolbox}
\makeatletter
\define@cmdkey[ba]{posterbox}[baposter@box@]{background}{}
\presetkeys[ba]{posterbox}{
background=white,
}{}
\patchcmd{\poster}{%
text justified] {\usebox{\baposter@content}};% <- important
}{
text justified, fill=\baposter@box@background]
{\usebox{\baposter@content}};
}{\typeout{patched}}{\typeout{not patched}}
\makeatother
这使得能够使用
\headerbox{title}{options}{contents}
选项现在可以包含 background=color