Finally, here is my functioning test-code for clickable tabs.
%!TEX TS-program = pdflatex
\PassOptionsToPackage{table,x11names,svgnames}{xcolor}
\documentclass[10pt,twoside,openright,usletter]{book}
\usepackage[vmargin=2cm,hmargin=2cm]{geometry} % les marges interfèrent avec le format usletter
\usepackage{lipsum}
\usepackage{eso-pic}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{shapes}
\usepackage{hyperref}
\usepackage{totcount}
\usepackage{changepage} % pour isoler les pages paires et impaires
\hypersetup{colorlinks=true,
breaklinks=true,
linkcolor=magenta,
bookmarks=true,
pageanchor=true}
% Références:
% 1- TikZ pour l’impatient Gérard Tisseau Jacques Duma version 5 septembre 2012
% 2- A very minimal introduction to TikZ∗ Jacques Crémer École d'économie de Toulouse version 11 mars 2011
% 3- http://stackoverflow.com/questions/3504952/tikz-how-to-encapsulate-shade-in-node
% 4- http://tex.stackexchange.com/questions/60329/how-to-hyperlink-a-shape-using-tikz
% 5- http://tex.stackexchange.com/questions/60768/how-to-control-borders-of-intersected-nodes-rectangles
% 6- http://tex.stackexchange.com/questions/48918/tikzstyle-default-node-text-with-fill-color
% 7- http://tex.stackexchange.com/questions/78689/change-style-of-labels-of-tikz-nodes-of-a-given-style?rq=1
% 8- http://www.raphink.info/2011/04/fancytabs-latex-package.html and the fancytabs.sty file (its content)
% 9- PGF/TikZ - Graphics for LATEX A tutorial by Meik Hellmund of University of Leipzig, Mathematisches Institut
% 10- http://www.texample.net/tikz/examples/computer-science-mindmap/
% ---> Pot-pourri des bases de la formation des onglets cliquables:
%
% - Les vecteurs de base ont pour longueur 1 cm (et quand on imprime, c’est très précisément 1 cm). l’origine dans la figure engendrée. En fait, elle n’a pas de position prédéfinie. La figure occupe seulement la place minimale pour que tous les éléments tracés explicitement soient visibles. La position de l’origine par rapport à la figure dépend donc des points tracés.
% - un rectangle est défini par son coin inférieur gauche et son coin supérieur droit
% \draw [blue] (0,0) rectangle (2,1); où (0,0) est le coin inférieur gauche et (2,1) le coin supérieur droit
% - je n'ai pas réussi à lier un rectangle à un texte, i.e. pas d'hyperref entre un rectangle et une cible; fonctionne seulement avec le texte d'un noeud
% - Nous avons vu l’option draw de \node qui trace la frontière du nœud.
% La forme de cette frontière peut être modifiée et décorée à l’aide de différentes options :
% – de forme : rectangle (défaut), circle, ellipse, diamond
% – de style : dashed, dotted, thick, red, fill
% – de modification : rounded corners, minimum width ou height
% - \node [below right,red,align=center] at (0,0) {below right align center at 0,0}; % on écrit du texte vis-à-vis un noeud
% \node[draw,rectangle,rounded corners=3pt] (P) at (0,0) {Paris};
% - « Soit A le point de coordonnées (1, 0) ». Cela s’écrit \coordinate (A) at (1,0) ; i.e. \coordinate (nom) at (x,y) ; .... \draw (A) -- (B) ; si points A et B définis
% - \node [below right,red,align=center] at (1,1) {below right align center}; % on écrit du texte vis-à-vis un noeud
% - les dimensions peuvent être calculées lorsqu'elles sont entourées d'une certaine expression: {\dimexpr calculs ici \relax} par exemple: {\dimexpr 2cm+2cm/3 \relax}
% - pour les pages paires /impaires seulement: \checkoddpage \ifoddpage \else \fi
% - Dans les spécifications de l'embellissement du noeud:
% shade : peut être utilisée avec une seule couleur
% * attributs pouvant être spécifiés après "shade":
% shade,shading=ball,ball color=blue!60!red,
% shade,shading=radial,ball color=blue!60!red,
% shade,top color=red, bottom color=green,
% shade,bottom color=green,left color=blue,
% shading angle=-90
%
% align = center contrôle le centrage latéral (donc vertical si onglet vertical)
% Bloc dimensions étiquettes verticales à droite
\newlength\HauteurOngletDroite
\setlength\HauteurOngletDroite{\dimexpr\paperheight/8\relax} %
\newlength\LargeurOngletDroite
\setlength\LargeurOngletDroite{\dimexpr\paperwidth/33\relax} %
\newlength\ProfondeurTexteOngletDroite
\setlength\ProfondeurTexteOngletDroite{\dimexpr\LargeurOngletDroite/2-1.5mm\relax} % contrôle le centrage latéral de l'onglet vertical
\newlength\xOngletDroite
\setlength\xOngletDroite{\dimexpr\paperwidth-(\LargeurOngletDroite*1/2)\relax}
\newlength\yOngletZeroDroite
\newlength\yOngletUnDroite
\setlength\yOngletZeroDroite{\dimexpr\paperheight-(\HauteurOngletDroite*1/2)\relax} %
\setlength\yOngletUnDroite{\dimexpr\paperheight-(\HauteurOngletDroite*3/2)\relax}
\tikzset{OngletDroite/.style={
align=center,text width=\HauteurOngletDroite,text height=\LargeurOngletDroite,text depth=\ProfondeurTexteOngletDroite,inner sep=0pt,thick,rectangle,rounded corners=5pt,rotate=270,font=\sffamily\normalsize
}} %
% Bloc dimensions étiquettes verticales à gauche
\newlength\HauteurOngletGauche
\setlength\HauteurOngletGauche{\dimexpr\paperheight/8\relax} %
\newlength\LargeurOngletGauche
\setlength\LargeurOngletGauche{\dimexpr\paperwidth/33\relax} %
\newlength\ProfondeurTexteOngletGauche
\setlength\ProfondeurTexteOngletGauche{\dimexpr\LargeurOngletGauche-2mm\relax} %
\newlength\xOngletGauche
\setlength\xOngletGauche{\dimexpr(\LargeurOngletGauche*1/2-2mm)\relax}
\newlength\yOngletZeroGauche
\newlength\yOngletUnGauche
\setlength\yOngletZeroGauche{\dimexpr\paperheight-(\HauteurOngletGauche*1/2)\relax} %
\setlength\yOngletUnGauche{\dimexpr\paperheight-(\HauteurOngletGauche*3/2)\relax}
\tikzset{OngletGauche/.style={
align=center,text width=\HauteurOngletGauche,text depth=\ProfondeurTexteOngletGauche,minimum height=\LargeurOngletGauche,inner sep=0pt,thick,rectangle,rounded corners=5pt,rotate=270,font=\sffamily\normalsize
}} %
% Bloc dimensions étiquettes horizontales en haut
\newlength\HauteurOngletHaut
\setlength\HauteurOngletHaut{\dimexpr\paperwidth/40\relax} % vertical
\newlength\LargeurOngletHaut
\setlength\LargeurOngletHaut{\dimexpr\paperheight/7\relax} % horizontal
\newlength\ProfondeurTexteOngletHaut
\setlength\ProfondeurTexteOngletHaut{\dimexpr\HauteurOngletHaut/2-3.5mm\relax} %
\newlength\xOngletZeroHaut
\setlength\xOngletZeroHaut{\dimexpr(\LargeurOngletHaut)\relax}
\newlength\xOngletUnHaut
\setlength\xOngletUnHaut{\dimexpr(\LargeurOngletHaut*2)\relax}
\newlength\yOngletHaut
\setlength\yOngletHaut{\dimexpr\paperheight-(\HauteurOngletHaut*1/2-1mm)\relax} %
\tikzset{OngletHaut/.style={
align=center,text width=\LargeurOngletHaut,text depth=\ProfondeurTexteOngletHaut,minimum height=\HauteurOngletHaut,inner sep=0pt,thick,rectangle,rounded corners=5pt,rotate=0,font=\sffamily\normalsize
}} %
% Bloc dimensions étiquettes horizontales en bas
\newlength\HauteurOngletBas
\setlength\HauteurOngletBas{\dimexpr\paperwidth/40\relax} % vertical
\newlength\LargeurOngletBas
\setlength\LargeurOngletBas{\dimexpr\paperheight/7\relax} % horizontal
\newlength\ProfondeurTexteOngletBas
\setlength\ProfondeurTexteOngletBas{\dimexpr\HauteurOngletBas/4\relax} %
\newlength\xOngletZeroBas
\setlength\xOngletZeroBas{\dimexpr(\LargeurOngletBas)\relax}
\newlength\xOngletUnBas
\setlength\xOngletUnBas{\dimexpr(\LargeurOngletBas*2)\relax}
\newlength\yOngletBas
\setlength\yOngletBas{\dimexpr(\HauteurOngletBas-3.5mm)\relax} %
\tikzset{OngletBas/.style={
align=center,text width=\LargeurOngletBas,text depth=\ProfondeurTexteOngletBas,minimum height=\HauteurOngletBas,inner sep=0pt,thick,rectangle,rounded corners=5pt,rotate=0,font=\sffamily\normalsize
}} %
\newcommand{\MesOnglets}{%
\begin{tikzpicture}[remember picture,overlay]
% Onglets verticaux à droite
\coordinate (PositionOngletDroiteZero) at (\xOngletDroite,\yOngletZeroDroite) ;
\coordinate (PositionOngletDroiteUn) at (\xOngletDroite,\yOngletUnDroite) ;
%
\node (OngletDroiteZero) at (PositionOngletDroiteZero) {\hyperlink{HyperTableOfcontents}{\tikz
\node[OngletDroite,draw=purple,fill=gray!20,text=green]{TDM};}};
%
\node (OngletDroiteUn) at (PositionOngletDroiteUn) {\hyperlink{HyperChapitreUn}{\tikz
\node[OngletDroite,draw=blue,shade,top color=red, bottom color=green,shading angle=-30,text=red] {Chapitre 1};}};
% Onglets verticaux à gauche
\coordinate (PositionOngletGaucheZero) at (\xOngletGauche,\yOngletZeroGauche) ;
\coordinate (PositionOngletGaucheUn) at (\xOngletGauche,\yOngletUnGauche) ;
%
\node (OngletGaucheZero) at (PositionOngletGaucheZero) {\hyperlink{HyperTableOfcontents}{\tikz \node[OngletGauche,draw=purple,shade,top color=purple, bottom color=orange,shading angle=-30,text=blue]{\rotatebox{180}{TDM}};}};
%
\node (OngletGaucheUn) at (PositionOngletGaucheUn) {\hyperlink{HyperChapitreUn}{\tikz
\node[OngletGauche,draw=blue,fill=yellow!80,text=red]{\rotatebox{180}{Chapitre 1}};}};
%
%
% Onglets horizontaux en haut
\coordinate (PositionOngletHautZero) at (\xOngletZeroHaut,\yOngletHaut) ;
\coordinate (PositionOngletHautUn) at (\xOngletUnHaut,\yOngletHaut) ;
%
\node (OngletHautZero) at (PositionOngletHautZero) {\hyperlink{HyperTableOfcontents}{\tikz \node[OngletHaut,draw=purple,shade,top color=purple, bottom color=orange,shading angle=-30,text=blue]{TDM};}};
%
\node (OngletHautUn) at (PositionOngletHautUn) {\hyperlink{HyperChapitreUn}{\tikz
\node[OngletHaut,draw=blue,fill=yellow!80,text=red]{Chapitre 1};}};
%
% Onglets horizontaux en bas
\coordinate (PositionOngletBasZero) at (\xOngletZeroBas,\yOngletBas) ;
\coordinate (PositionOngletBasUn) at (\xOngletUnBas,\yOngletBas) ;
%
\node (OngletBasZero) at (PositionOngletBasZero) {\hyperlink{HyperTableOfcontents}{\tikz \node[OngletBas,draw=purple,shade,top color=purple, bottom color=orange,shading angle=-30,text=blue]{TDM};}};
%
\node (OngletBasUn) at (PositionOngletBasUn) {\hyperlink{HyperChapitreUn}{\tikz
\node[OngletBas,draw=blue,fill=yellow!80,text=red]{Chapitre 1};}};
%
\end{tikzpicture}
}%fin newcommand
\AddToShipoutPicture{
\MesOnglets
}% fin \AddToShipoutPicture
\begin{document}
\frontmatter
\hypertarget{HyperTableOfcontents}{\tableofcontents}
\mainmatter
\cleardoublepage
\hypertarget{HyperChapitreUn}{\chapter{Chapitre un}}
\section{Section un Chapitre un}
\lipsum
\section{Section deux Chapitre un}
\lipsum
\lipsum
\lipsum
\cleardoublepage
\hypertarget{HyperChapitreDeux}{\chapter{Chapitre deux}}
\lipsum
\section{Section un Chapitre deux}
\lipsum
\section{Section deux Chapitre deux}
\lipsum
\lipsum
\lipsum
\cleardoublepage
\hypertarget{HyperChapitreTrois}{\chapter{Chapitre trois}}
\lipsum
\section{Section un Chapitre trois}
\lipsum
\section{Section deux Chapitre trois}
\lipsum
\lipsum
\cleardoublepage
\hypertarget{HyperChapitreQuatre}{\chapter{Chapitre quatre}}
\lipsum
\lipsum
\lipsum
\lipsum
\cleardoublepage
\hypertarget{HyperChapitreCinq}{\chapter{Chapitre cinq}}
\lipsum
\lipsum
\lipsum
\lipsum
\cleardoublepage
\hypertarget{HyperChapitreSix}{\chapter{Chapitre six}}
\lipsum
\lipsum
\lipsum
\lipsum
\cleardoublepage
\hypertarget{HyperChapitreSept}{\chapter{Chapitre sept}}
\lipsum
\lipsum
\lipsum
\lipsum
\end{document}
{}button. – T. Verron Nov 22 '12 at 20:38