I'm using a picture environment to \put some tikzpictures at places within the page from within \setkomavar{firsthead}. When I declare some pgf layers like so:
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background, main, foreground}
the pictures disappear. The reason for the layers is to create a fancy table environment to display some data. When I remove the layers, the pictures reappear. Does anyone know anything obvious to make the tikzpictures reappear? If not I'll make a minimal working example to explain what I mean. I've tried to do \begin{pgfonlayer}{main}...\end{pgfonlayer} but that doesn't change anything.
Edit: minimal working example
\documentclass{scrlttr2}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{tabularx}
\usepackage{color}
\usetikzlibrary{calc, fit, shadows, arrows, positioning}
% if these lines are commented out, the box draws.
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background, main, foreground}
% end comment out these lines
\newsavebox{\monotablecontent}
\newenvironment{monotable}[1]{%
\begin{lrbox}{\monotablecontent}%
\begin{tabular}{#1}}%
%
{%
\end{tabular}
\end{lrbox}
\begin{tikzpicture}
\node [inner xsep=0pt] (tbl){\usebox{\monotablecontent}};
% table
\draw[rounded corners=1pt,top color=gray!1,bottom color=gray!30,draw=black]
(tbl.north east) rectangle (tbl.south west);
% top line
\draw[rounded corners=1pt,top color=gray!10!black,bottom color=gray!50!black,draw=black]
($(tbl.north west)$) rectangle ($(tbl.north east)-(0, 1.5\baselineskip)$);
% bottom rule
\draw[rounded corners=0.25pt,fill=gray,draw=black]
(tbl.south west) rectangle ($(tbl.south east)+(0, 0.05)$);
\end{tikzpicture}
}
\definecolor{myblue}{rgb}{0, 0.58, 0.85}
\newcommand*\invhead[1]{\sffamily{\color{myblue}\footnotesize{\textbf{#1}}}}
\newcommand*\head[1]{\tiny \invhead{#1}}
% set details
\setkomavar{fromname}{ACME Widgets}
\setkomavar{fromaddress}{1 Infinite Loop\\Sometown, 90210\\Uganda}
\setkomavar{fromphone}{+61 9876 5432}
\setkomavar{fromemail}{accounts@acme.com}
\setkomavar{fromfax}{+61 9876 5431}
\setkomavar{fromurl}{http://acme.com/}
\setkomavar{signature}{ACME Widgets}
\setkomavar{fromlogo}{}
\setkomavar{invoice}[Invoice number]{1234 567}
\setkomavar{date}{}
\setkomavar{customer}[Account number]{123456}
% set up a style for our boxes that we will eventually draw.
\tikzstyle{shadedbox} = [
draw=black,
shade,
top color=white,
bottom color=bottom,
drop shadow={
top color=black,
bottom color=black,
shadow xshift=2pt,
shadow yshift=-2pt,
},
thin,
rectangle,
inner sep=2pt,
inner ysep=2pt,
outer ysep=1ex,
]
\newcommand*\monobox[2]{%
\begin{tikzpicture}
\definecolor{top}{RGB}{250,250,250}
\definecolor{bottom}{RGB}{235,235,235}
\begin{pfgonlayer}{main}
\node [shadedbox, minimum width=0.18\textwidth, text width=0.18\textwidth, align=right] (box) {
\begin{tabular}{r}
\invhead{\scriptsize #1}\\
\footnotesize{#2}\\
\end{tabular}
};
\end{pgfonlayer}
\end{tikzpicture}
}
% set the logo, draw some boxes...
\setkomavar{firsthead}{
\usekomavar{fromlogo}\\
\begin{picture}(0,0)
\put(0,0){
\parbox[t]{\textwidth}{
\vspace{\useplength{toaddrvpos}}
\vspace{3\baselineskip}
\hspace{-2pt}
\monobox{Last Bill}{\$29.95}
}
}
\end{picture}
}
\begin{document}
\begin{letter}[backaddress=false]{%
Mr Joe Customer\\%
17 Unicorn Avenue\\
Narwhtropilis\\%
Uganda\\%
}
\setkomavar{subject}{Invoice}
\opening{Dear Joe Customer,}
Here is your invoice.
\closing{Regards}
\end{letter}
\end{document}
The errors I seem to get are:
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
! A <box> was supposed to be here.
<to be read again>
=
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerboxsaved@ foreground
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ main
l.114 \opening{Dear Joe Customer,}
?
! Missing number, treated as zero.
<to be read again>
\pgf@layerbox@ foreground
l.114 \opening{Dear Joe Customer,}
?
Foot of first page
Address (addressee)
Location field: empty
Reference line(s): with fields but without date
Title: no
Subject: before opening
[1] (./test.aux)
)
Output written on test.pdf (1 page).

pfgonlayerinstead ofpgfonlayer. Although from the errors it seems that you only have this mistake in the MWE here. If you then remove the spaces from\pgfsetlayerslike so:\pgfsetlayers{background,main,foreground}it should compile without errors. – Roelof Spijker Nov 8 '11 at 9:31\pgfsetlayerscommand. – Andrew Stacey Nov 8 '11 at 11:02