Voici une solution utilisant le package [etoolbox](https://www.ctan.org/pkg/etoolbox).
Pour les environement environnements (abstract, tableaux, citations,...)
citations,...) :
\AtBeginEnvironment{ENVI}{\singlespacing}
pour
Pour les commandes (`\tableofcontents`, `\listoffigures`, `\listoftables` et `\printbibliography` ...)
`\printbibliography`...)
\preto{\CMD}{\singlespacing}
\appto{\CMD}{\onehalfspacing}
Pour les titres de plus d'une line
ligne :
\patchcmd\@sect{\begingroup}{\begingroup\setbox0=\hbox{\hskip #3\relax\@svsec #8}\ifdim\wd0>\linewidth\singlespacing\fi}{}{\errmessage{some thing bad happen}}
\patchcmd\@ssect{\begingroup}{\begingroup\setbox0=\hbox{#5}\ifdim\wd0>\linewidth\singlespacing\fi}{}{\errmessage{some thing bad happen}}
**Exemple complet**
\documentclass{article}
\usepackage{lipsum}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage[backend=bibtex]{biblatex}
\addbibresource{mybib.bib}
%-------------------------- à mettre dans un fichier difspace.tex et \input{difspace}
\usepackage{setspace}
\onehalfspacing
\usepackage{etoolbox}
\preto{\tableofcontents}{\singlespacing}
\appto{\tableofcontents}{\onehalfspacing}
\preto{\listoffigures}{\singlespacing}
\appto{\listoffigures}{\onehalfspacing}
\preto{\listoftables}{\singlespacing}
\appto{\listoftables}{\onehalfspacing}
\preto{\printbibliography}{\singlespacing}
\appto{\printbibliography}{\onehalfspacing}
\AtBeginEnvironment{abstract}{\singlespacing}
\AtBeginEnvironment{tabular}{\singlespacing}
\AtBeginEnvironment{quote}{\singlespacing}
\AtBeginEnvironment{thebibliography}{\singlespacing}
\makeatletter
\patchcmd\@sect{\begingroup}{\begingroup\setbox0=\hbox{\hskip #3\relax\@svsec #8}\ifdim\wd0>\linewidth\singlespacing\fi}{}{\errmessage{some thing bad happen}}
\patchcmd\@ssect{\begingroup}{\begingroup\setbox0=\hbox{#5}\ifdim\wd0>\linewidth\singlespacing\fi}{}{\errmessage{some thing bad happen}}
\makeatother
%------------------------------------------
\begin{document}
\nocite{*}
\begin{abstract}
\lipsum[1]
\end{abstract}
\tableofcontents
\listoffigures
\listoftables
\section{Titre très très long pour montrer proprement ce style, mais qui ne sert à rien d'autre}
\lipsum[1]
\begin{quote}
\lipsum[1]
\end{quote}
\lipsum[1]
\section{Titre d'une section}
\subsection{Foo}
Bla bla \footnote{\lipsum[1]}
\lipsum[1]
\subsection{Foo bar}
\lipsum[1]
\begin{tabular}{|c|c|c|}
\hline
1111 & 12 & a \\
\hline
21 & 22 & b \\
\hline
31 & 32 & c \\
\hline
4444 & 42 & d \\
\hline
51 & 52 & e \\
\hline
\end{tabular}
Bla bla\footnote{\lipsum[1]}
\printbibliography
\lipsum[1]
\end{document}