You can use the solution I posted for How to include a picture over two pages, left part on left side, right on right (for books)? and then exchange any \includegraphics[<options>]{<image file>}
with \adjustbox{<some options>}{<your tikzpicture or similar>}
from the adjustbox
package instead. It builds on the option keys provided by graphicx
and is fully compatible with it, but applies them to text or picture environments instead of graphicx.
What you basically have to do is:
Split the tikzpicture
using \clipbox
or \adjustbox{clip=...}
from the adjustbox
package. You need to insert it twice and clip first the left part and then the right part. For this you should store the image first into a box register and then use the register twice. Even better, use my storebox
package and the \storebox\mystore{<your image>}
and \usestorebox
macro which only stores the whole picture once in the PDF, while \savebox
/ \usebox
stores it twice. I actually already wrote a \splitbox
macro as part of adjustbox
for this kind of thing, but it isn't released yet.
The figure
environment makes things a little more tricky. You need to make sure that both are either on top or bottom and do not fall on one figure-only page which will happen if you don't have enough text around it.
Here the code from How to include a picture over two pages, left part on left side, right on right (for books)? modified for picture environments. If you use several of these close to each other you need to use different box registers to hold them.
\documentclass[twoside]{book}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{afterpage}
\usepackage{placeins}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage[disable]{storebox}
\newstorebox\twopagestorebox
% For the `memoir` class remove the following two packages.
% This class already provide the functionality of both
\usepackage{caption}
\usepackage[strict]{changepage}
%%%
\setcounter{totalnumber}{1}
\setcounter{topnumber}{1}
\setcounter{bottomnumber}{1}
\renewcommand{\topfraction}{.99}
\renewcommand{\bottomfraction}{.99}
\renewcommand{\textfraction}{.01}
\makeatletter
\newenvironment{twopagepicture}[3]{%
\def\@dotwopagepicture{\@twopagepicture{#1}{#2}{#3}}%
\begin{storebox}{\twopagestorebox}%
}{%
\end{storebox}%
\ifstorebox
\global\let\twopagestorebox=\twopagestorebox
\else
\global\setbox\twopagestorebox=\box\twopagestorebox
\fi
\@dotwopagepicture{\usestorebox\twopagestorebox}%
}
\newcommand*{\@twopagepicture}[4]{%
\checkoddpage
\ifoddpage
\expandafter\@firstofone
\else
\expandafter\afterpage
\fi
{\afterpage{%
\if #1t%
\if #2p%
\thispagestyle{empty}%
\afterpage{\thispagestyle{empty}}%
\fi
\fi
\begin{figure}[#1]
\if #2p%
\if #1t%
\vspace*{-\dimexpr1in+\voffset+\topmargin+\headheight+\headsep\relax}%
\fi
\fi
\if #1b%
\caption{#3}%
\fi
\makebox[\textwidth][l]{%
\if #2p\relax
\let\mywidth\paperwidth
\hskip-\dimexpr1in+\hoffset+\evensidemargin\relax
\else
\let\mywidth\linewidth
\fi
\adjustbox{width=2\mywidth,Clip=0 0 {\mywidth} 0}{#4}}%
\if #1b\else
\caption{#3}%
\fi
\if #2p%
\if #1b%
\vspace*{-\dimexpr\paperheight-\textheight-1in-\voffset-\topmargin-\headheight-\headsep\relax}%
\fi
\fi
\end{figure}%
\begin{figure}[#1]
\if #2p%
\if #1t%
\vspace*{-\dimexpr1in+\voffset+\topmargin+\headheight+\headsep\relax}%
\fi
\fi
\makebox[\textwidth][l]{%
\if #2p%
\let\mywidth\paperwidth
\hskip-\dimexpr1in+\hoffset+\oddsidemargin\relax
\else
\let\mywidth\linewidth
\fi
\adjustbox{width=2\mywidth,Clip={\mywidth} 0 0 0}{#4}}%
\if #2p%
\if #1b%
\vspace*{-\dimexpr\paperheight-\textheight-1in-\voffset-\topmargin-\headheight-\headsep\relax}%
\fi
\fi
\end{figure}%
}}%
}
\makeatother
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{twopagepicture}{b}{l}{Test}
\begin{tikzpicture}
\draw (0,0) -- (2\linewidth,10);
\draw (0,10) -- (2\linewidth,0);
\draw (\linewidth,5) circle (2);
\end{tikzpicture}
\end{twopagepicture}
\lipsum
\lipsum
\end{document}
The result looks like this:

Note that there is a bug in the current version of storebox
(v1.0) caused by the update of collectbox
. I already fixed it and uploaded v1.1 to CTAN. Please remove the disabled
option from it once you have the new version. So far it runs in fallback mode and actually uses saveboxes instead.
\documentclass
so that those trying to help don't have to recreate it. – Peter Grill Oct 20 '11 at 19:32