% Copyright 2016 by Till Tantau % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Free Documentation License. % % See the file doc/generic/pgf/licenses/LICENSE for more details. \def\pgfsysdriver{pgfsys-dvisvgm.def} \usepackage[hypertex]{hyperref} \makeatletter \g@addto@macro\selectfont{% \long\edef\longf@family{\f@family}% \ifx\longf@family\ttdefault \ignoreligaturesinfont\font\relax \fi } \makeatother \usepackage{graphicx,xcolor} \def\graphicsdvisvgmtext{dvisvgm.def} \expandafter\ifx\csname Gin@driver\endcsname\graphicsdvisvgmtext \else \PackageError{manual}{You must use dvisvgm.def as your graphics driver} \fi % Make sure to compile this using lualatex. % Add forward button to each page: \usepackage{everyshi} \makeatletter \newbox\pgfmanualbuttonbox \newcount\pgfmanualcount \newdimen\mydim \EveryShipout{%% \setbox255=\vbox{% \pgfkeys{/pgf/fpu=false}% \@tempdima=\ht255\relax% \unvbox255% \vskip-\@tempdima% \pgfmanualaddforwardbackward% \pgfmanualaddtoc% }% } \def\pgfmanualaddforwardbackward{% % Adds page forward and page backward buttons at the left and right % end of each page \let\protect=\relax% \pgfmanualcount=\c@page% \advance\pgfmanualcount by-1\relax% \ifnum\pgfmanualcount>0\relax% \begin{pgfpicture}{1in}{-1in}{1in}{-1in} \special{dvisvgm:raw } \pgftext[top,left]{\href{\jobname-\pgfmanualpadded{\pgfmanualcount}.svg}{{\color{white}\vrule width 2cm height \paperheight}}} \special{dvisvgm:raw } \end{pgfpicture}% \fi% \advance\pgfmanualcount by2\relax% \begin{pgfpicture}{-\paperwidth+1in}{-1in}{-\paperwidth+1in}{-1in} \special{dvisvgm:raw } \pgftext[top,right]{\href{\jobname-\pgfmanualpadded{\pgfmanualcount}.svg}{\color{white}{\vrule width 2cm height \paperheight}}} \special{dvisvgm:raw } \end{pgfpicture}% } \newbox\chapterbox \newcount\pgfmanualpartcount \newcount\pgfmanualsectioncount \newcount\pgfmanualsubsectioncount \newcount\pgfmanualsubsubsectioncount \newcount\pgfmanualtempcount \newtoks\toctoks {% Read toc into \toctoks \global\toctoks{ \global\pgfmanualpartcount0\relax \global\pgfmanualsectioncount0\relax \global\pgfmanualsubsectioncount0\relax \global\pgfmanualsubsubsectioncount0\relax } \def\contentsline#1#2#3#4{% \expandafter\let\expandafter\pgfmanualhandler\csname pgfmanualhandlekind#1\endcsname% \ifx\pgfmanualhandler\relax% \PackageError{manual}{Unknown contents level '#1'}{}% \else% \pgfmanualhandler{#2}{#3}{#4}%% \fi% \ignorespaces% } \def\pgfmanualhandlekindpart#1#2#3{% \pgfmanualtempcount#2\relax% \advance\pgfmanualtempcount by-1\relax% \edef\pgfmanualtemponepagebefore{\the\pgfmanualtempcount}% \pgfmanualtempcount\pgfmanualpartcount\relax% \advance\pgfmanualtempcount by-1\relax% \expandafter\xdef\csname pgfmanualpartendpage\the\pgfmanualpartcount\endcsname{\pgfmanualtemponepagebefore}% \global\advance\pgfmanualpartcount by1\relax% \expandafter\gdef\csname pgfmanualpartstartpage\the\pgfmanualpartcount\endcsname{#2}% \expandafter\global\expandafter\toctoks\expandafter{\the\toctoks\pgfmanualtypesetpart{#1}{#2}}% } \def\pgfmanualhandlekindsection#1#2#3{% \pgfmanualtempcount#2\relax% \advance\pgfmanualtempcount by-1\relax% \edef\pgfmanualtemponepagebefore{\the\pgfmanualtempcount}% \pgfmanualtempcount\pgfmanualsectioncount\relax% \advance\pgfmanualtempcount by-1\relax% \expandafter\xdef\csname pgfmanualsectionendpage\the\pgfmanualsectioncount\endcsname{\pgfmanualtemponepagebefore}% \global\advance\pgfmanualsectioncount by1\relax% \expandafter\gdef\csname pgfmanualsectionstartpage\the\pgfmanualsectioncount\endcsname{#2}% \expandafter\global\expandafter\toctoks\expandafter{\the\toctoks\pgfmanualtypesetsection{#1}{#2}}% } \def\pgfmanualhandlekindsubsection#1#2#3{% \pgfmanualtempcount#2\relax% \advance\pgfmanualtempcount by-1\relax% \edef\pgfmanualtemponepagebefore{\the\pgfmanualtempcount}% \pgfmanualtempcount\pgfmanualsubsectioncount\relax% \advance\pgfmanualtempcount by-1\relax% \expandafter\xdef\csname pgfmanualsubsectionendpage\the\pgfmanualsubsectioncount\endcsname{\pgfmanualtemponepagebefore}% \global\advance\pgfmanualsubsectioncount by1\relax% \expandafter\gdef\csname pgfmanualsubsectionstartpage\the\pgfmanualsubsectioncount\endcsname{#2}% \expandafter\global\expandafter\toctoks\expandafter{\the\toctoks\pgfmanualtypesetsubsection{#1}{#2}}% } \def\pgfmanualhandlekindsubsubsection#1#2#3{% \pgfmanualtempcount#2\relax% \advance\pgfmanualtempcount by-1\relax% \edef\pgfmanualtemponepagebefore{\the\pgfmanualtempcount}% \pgfmanualtempcount\pgfmanualsubsubsectioncount\relax% \advance\pgfmanualtempcount by-1\relax% \expandafter\xdef\csname pgfmanualsubsubsectionendpage\the\pgfmanualsubsubsectioncount\endcsname{\pgfmanualtemponepagebefore}% \global\advance\pgfmanualsubsubsectioncount by1\relax% \expandafter\gdef\csname pgfmanualsubsubsectionstartpage\the\pgfmanualsubsubsectioncount\endcsname{#2}% \expandafter\global\expandafter\toctoks\expandafter{\the\toctoks\pgfmanualtypesetsubsubsection{#1}{#2}}% } \def\pgfmanualhandlekindparagraph#1#2#3{% % ignore } \input{\jobname.toc}% } {\catcode`\#=11 \gdef\pgfmanualhashmark{#} } \def\pgfmanualaddifnotempty#1#2{% \ifvoid#1% \else% \setbox#1=\vtop{% \hsize\mydim% \leavevmode{\strut#2}% \unvbox#1% }% \fi% } \definecolor{tocbackground}{rgb}{0.99,0.99,0.97} \def\pgfmanualpickpage#1#2#3#4#5{% \c@pgf@counta#2\relax% \xdef\pgfmanualtocpage{\the\c@pgf@counta}% } \def\pgfmanualaddtoc{% \begingroup \expandafter\let\expandafter\pgfmanualtemp\csname r@table-of-contents\endcsname% \ifx\pgfmanualtemp\relax% \def\pgfmanualtocpage{1}% \else% \expandafter\pgfmanualpickpage\pgfmanualtemp% \fi% \let\numberline\pgfmanualpagetocnumberline% \mydim\paperwidth\advance\mydim by-3cm% \mydim=\mydim\relax% \footnotesize% \setbox\chapterbox=\box\voidb@x% \pgfmanualpagetoctobox{\chapterbox}{\pgfmanualpagetocline{\pgfmanualtocpage}{\Large\textbf{Contents}\vrule width0pt height7mmdepth2.5mm}{0cm}{tocbackground}}% \the\toctoks% \begin{pgfpicture}{1in-1.5cm}{-1in}{1in-1.5cm}{-1in} \pgftext[top,left]{\vbox{% \nointerlineskip% \parskip0pt% \hsize=\mydim% \leftskip0pt% \rightskip0pt% \parindent0pt% \special{dvisvgm:raw }% \special{dvisvgm:raw } {\color{white}{\vrule width\mydim height 2cm}}\break% \special{dvisvgm:raw }% \hbox{}\vskip-2.6cm\break\leavevmode% \special{dvisvgm:raw }% \box\chapterbox\break% \hbox{}\vskip-2pt\break% {\color{tocbackground}{\vrule width\mydim height 5mm}}\break% \special{dvisvgm:raw }% \special{dvisvgm:raw } }}% \end{pgfpicture} \endgroup } \def\pgfmanualpadded#1{% \ifnum#1<1000 0\fi% \ifnum#1<100 0\fi% \ifnum#1<10 0\fi% \the#1% } \def\pgfmanualpagetocnumberline#1{} \def\pgfmanualpagetoctobox#1#2{% \setbox#1=\vtop{% \unvbox#1% #2}% } \newdimen\pgfmanualtoclineskip \pgfmanualtoclineskip1.5pt \def\pgfmanualpagetocline#1#2#3#4{% \pgfmanualtempcount#1% \vskip-1pt% \hbox{\href{\jobname-\pgfmanualpadded{\pgfmanualtempcount}.svg}{% \fboxsep0pt% \colorbox{#4}{\vbox{% \vskip\pgfmanualtoclineskip \hsize\mydim% \leftskip#3% \advance\leftskip by5mm% \rightskip1em plus1fil% \advance\rightskip by5mm% \noindent\strut#2\strut}}}}% } \newif\ifpgfmanualbetweentest \def\pgfmanualifin#1#2#3#4{% \pgfmanualbetweentestfalse \expandafter\let\expandafter\pgfmanualstartnum\csname pgfmanual#1startpage\expandafter\the\csname pgfmanual#1count\endcsname\endcsname% \ifx\pgfmanualstartnum\relax% \def\pgfmanualstartnum{-1}% \fi% \expandafter\let\expandafter\pgfmanualendnum\csname pgfmanual#1endpage\expandafter\the\csname pgfmanual#1count\endcsname\endcsname% \ifx\pgfmanualendnum\relax% \def\pgfmanualendnum{1000000000}% \fi% \ifnum\pgfmanualstartnum>\pgfmanualendnum\relax% \let\pgfmanualendnum\pgfmanualstartnum% \fi% \ifnum\pgfmanualstartnum>#2\relax% \else% \ifnum\pgfmanualendnum<#2\relax% \else% \pgfmanualbetweentesttrue% \fi% \fi% \ifpgfmanualbetweentest% #3% \else #4% \fi% } \def\pgfmanualtypesetpart#1#2{% \pgfmanualcleanuppart#1\relax% \global\advance\pgfmanualpartcount by1\relax% \pgfmanualifin{part}{\c@page}{\global\let\pgfmanualthispart\pgfmanualparttext}{}% \pgfmanualpagetoctobox{\chapterbox}{% \pgfmanualpagetocline{#2}{% \pgfmanualifin{part}{\c@page}{\bfseries\pgfmanualparttext}{\pgfmanualparttext}% }{1.5cm}{tocbackground}}% } \def\pgfmanualcleanuppart#1\hspace#2#3\relax{% \def\pgfmanualparttext{\llap{\hbox to 1.5cm{Part #1\hss}}#3}% } \def\pgfmanualtypesetsection#1#2{% \global\advance\pgfmanualsectioncount by1\relax% \pgfmanualifin{part}{\c@page}{% \pgfmanualifin{section}{\c@page}{\gdef\pgfmanualthischapter{#1}}{}% \pgfmanualpagetoctobox{\chapterbox}{% \def\numberline##1{\llap{##1\hskip3mm}}% \pgfmanualpagetocline{#2}{% \pgfmanualifin{section}{\c@page}{\bfseries\itshape#1}{\itshape#1}% }{1.5cm}{tocbackground}}% }{}% } \def\pgfmanualtypesetsubsection#1#2{% \global\advance\pgfmanualsubsectioncount by1\relax% \pgfmanualifin{part}{\c@page}{% \pgfmanualifin{section}{\c@page}{% \pgfmanualpagetoctobox{\chapterbox}{% \pgfmanualextraskip5mm% \pgfmanualpagetocline{#2}{ \pgfmanualifin{subsection}{\c@page}{\bfseries}{}#1% }{2cm}{tocbackground}}% }{}% }{}% } \def\pgfmanualtypesetsubsubsection#1#2{% \global\advance\pgfmanualsubsubsectioncount by1\relax% \pgfmanualifin{part}{\c@page}{% \pgfmanualifin{section}{\c@page}{% \pgfmanualextraskip10mm% \pgfmanualpagetoctobox{\chapterbox}{\pgfmanualpagetocline{#2}{% \pgfmanualifin{subsubsection}{\c@page}{\bfseries}{}\itshape#1% }{2.5cm}{tocbackground}}% }{}% }{}% } \def\pgfmanualsplitnumberline#1{% \pgfmanualsplitnumberline@#1\relax% } \def\pgfmanualsplitnumberline@#1.#2\relax{% \llap{#1\rlap{.#2}\hskip3mm\hskip\pgfmanualextraskip}% } \newdimen\pgfmanualextraskip \makeatother