Une solution simple consisteà consiste à définir une commande `\colorbox` personnalisée, qui insère une règle invisible au début de la boîte. boîte.
Je l'ai fait avec une hauteur et une profondeur calculées au plus juste, mais c'est facile à modifier. modifier.
J'ai utilisé `ex` pour unité, de sorte qu'en cas de changement de police, cela fonctionne toujours (en principe).
\documentclass[french]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{titletoc}%
\usepackage[table]{xcolor}%
\newcommand*{\contentsbox}[2]{\colorbox{#1}{\rule[-0.5ex]{0pt}{2.5ex}\smash{#2}}}%
\contentsmargin{0cm}%
\titlecontents{chapter}[1cm]%
{\addvspace{15pt}\color{blue}\large\sffamily\bfseries}%
{\llap{\contentsbox{blue!10}{\makebox[4cm][r]{\chaptername\nobreakspace\thecontentslabel}}\hskip5pt}\contentsbox{black!8}}%
{\llap{\contentsbox{blue!10}{\makebox[4cm][r]{}}\hskip5pt}\contentsbox{black!8}}%
{}%
\begin{document}
\tableofcontents
\chapter{Élastique}
\chapter{Elastique}
\chapter{Élastique}
\end{document}
![alt text][1]
[1]: http://texnique.fr:80/osqa/upfiles/boxheightintoc_nSRg74L.png