Asif just a moment. 1 answers, 0 views

\myTileWallPaper is defined in the classfile like this

\makeatletter
\newcommand{\myTileWallPaper}[4]{%
\begingroup
\setlength{\tileYoffset}{\wpYoffset}
\setlength{\tilewidth}{#1}%
\setlength{\tileheight}{#2}%
\setlength{\tileY}{0pt}%
\whiledo{\lengthtest{\tileY < \paperheight}}{%
\setlength{\tileX}{0pt}%
\setlength{\tileXoffset}{\wpXoffset}%
\whiledo{\lengthtest{\tileX < \paperwidth}}{%
\put(\LenToUnit{\tileXoffset},\LenToUnit{\tileYoffset}){%
\includegraphics[height=\tileheight,width=\tilewidth]{#3}}%
}%
}%
\endgroup
}
\makeatother

When I use two \AddToShipoutPictures, LaTeX throws an error.

\AddToShipoutPicture{%
\ifthenelse{\isodd{\thepage}}% Wenn ungerade Seitenzahl, dann Bild 1, sonst Bild 2.
}
\AddToShipoutPicture{\setlength{\unitlength{0.1mm}}\put(500,2522){\includegraphics[width=1.5cm]{Logoimg}}}

The error is as follows :

! Missing number, treated as zero.
{
l.73 \end{document}
A number should have been here; I inserted 0'.
(If you can't figure out why I needed to see a number,
look up weird error' in the index to The TeXbook.)

If I remove the 2nd \AddToShipoutPicture, everything seems to work fine. If I remove the 2nd \AddToShipoutPicture and put it ahead of the first one, everything seems to work fine -- although it doesn't work since the wall-paper then covers the logo.

Ahmed Musa 12/19/2011.

The following tiling isn't exactly correct, but it is precisely what you would have had if your code compiled. Use, eg, xwatermark package instead.

\usepackage{graphicx}
\usepackage{catoptions}
\usepackage{eso-pic}

\makeatletter
\cptnewdimens{tileXoffset,tileYoffset,wpXoffset,wpYoffset,
tilewidth,tileheight,tileX,tileY}
\wpXoffset.25cm\wpYoffset.25cm
\robust@def*\myTileWallPaper#1#2#3{%
\begingroup
\tileYoffset\wpYoffset
\tilewidth=\dimexpr#1\relax
\tileheight=\dimexpr#2\relax
\tileY=0pt
\cptwhiledim\tileY<\paperheight\do{%
\tileX=0pt \tileXoffset\wpXoffset
\cptwhiledim\tileX<\paperwidth\do{%
\put(\LenToUnit{\tileXoffset},\LenToUnit{\tileYoffset}){%
\includegraphics[height=\tileheight,width=\tilewidth]{#3}%
}%
}%
}%
\endgroup
}
\makeatother

\begin{document}
\ifnumoddTF\thepage
{\myTileWallPaper{.25\paperwidth}{.25\paperheight}{diag1.eps}}%
{\myTileWallPaper{.25\paperwidth}{.25\paperheight}{diag2.eps}}%
}

Here is the correct solution. Now you use keys in place of parameters.

\documentclass{article}
\usepackage{atbegshi,picture,graphicx,ifpdf}
\usepackage{pathkeys}
\makeatletter
\pathkeys{wallpaper/asif/define*(cmd):
viewport/00 00 100 100;
xtilenr/2;
ytilenr/2;
wpxoffset/0pt;
wpyoffset/0pt;
inputpath//;
}
\newcommand*\mytilewallpaper[2][]{%
\begingroup
\pathkeys@currentpath{wallpaper/asif}%
\pathkeys{set:#1}%
\pathkeys@useshortcmds
\edef\ffileext{\ifpdf pdf\else eps\fi}%
\edef\reserved@a{\pkv{inputpath}}%
\edef\reserved@a{\expandafter\ltxkeys@stripallouterbraces
\expandafter{\reserved@a}}%
\edef\Ginput@path{\ifcsnullTF\reserved@a{}{{\reserved@a/}}}%
\cptdimdef\tilewidth{(\paperwidth-\pkv{wpxoffset}*2)/\pkv{xtilenr}}%
\cptdimdef\tileheight{(\paperheight-\pkv{wpyoffset}*2)/\pkv{ytilenr}}%
\cptdimdef\tileY{-\paperheight+\pkv{wpyoffset}}%
\@tempcntb\z@
\cptwhilenum\@tempcntb<\pkv{ytilenr}\do{%
\edef\tileX{\pkv{wpxoffset}}%
\@tempcnta\z@
\cptwhilenum\@tempcnta<\pkv{xtilenr}\do{%
\leavevmode\@killglue
\cptexpanded{\noexpand\put(\tileX,\tileY){\noexpand\includegraphics
[viewport=\pkv{viewport},height=\tileheight,
width=\tilewidth,clip]{#2.\ffileext}}}%
}%
}%
\endgroup
}
\makeatother

\begin{document}
\def\wpspec{[viewport=20 21 590 400,xtilenr=4,ytilenr=4,
wpxoffset=2cm,wpyoffset=2cm,inputpath={./graphics}]{comet1}}
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\ifnumoddTF\thepage
{}%
{\expandafter\mytilewallpaper\wpspec}%
}}
x
\newpage
x
\end{document}