Удалить пробел перед элементом в таблице рисунков и других списках

Удалить пробел перед элементом в таблице рисунков и других списках

Я хочу удалить пробел перед каждым элементом в listoffigures, listoftables и т. д.

Вот что я хочу сделать:

Нежелательное пространство перед элементом в lof, lot

Вот мой MWE:

\documentclass[11pt, a4paper, dvipsnames, openany, twoside]{book}

%-------------------------------------------------------------------
% Packages
%-------------------------------------------------------------------

\usepackage[francais]{babel}
\usepackage{caption}
\usepackage{etoolbox}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\usepackage{tikz}
\usepackage{tocbasic}
%\usepackage[nottoc, notlof, notlot]{tocbibind}
\usepackage{xcolor}

%-------------------------------------------------------------------
% Structure
%-------------------------------------------------------------------

% Color
\colorlet{maincolor}{Red}

% Lists : settings

    % Set "listof" as sections and not as chapters
    \addtotoclist[float]{lof}
    \renewcommand*\listoffigures{\listoftoc[{\listfigurename}]{lof}}
    \addtotoclist[float]{lot}
    \renewcommand*\listoftables{\listoftoc[{\listtablename}]{lot}}
    \makeatletter
    \doforeachtocfile[float]{\setuptoc{\@currext}{leveldown}}
    \makeatother

    \renewcommand{\numberline}[1]{#1~--~}
    \renewcommand{\thefigure}{Figure~\arabic{chapter}.\arabic{figure}}
    \renewcommand{\thetable}{Tableau~\arabic{chapter}.\arabic{table}}

    \renewcommand\frenchtablename{}
    \renewcommand{\frenchlistfigurename}{Liste des figures}

% Figure

\newcommand{\myfigure}[2][]{\ifstrempty{#1}{\tcbincludegraphics{#2}}{\tcbincludegraphics[arc=8pt, width=7cm, colframe=maincolor, step and label={figure}{fig:#1}, title=\textbf{\thefigure~--~{#1}}, phantom={\addcontentsline{lof}{section}{\protect\numberline{\thefigure}{#1}}},]{#2}}}

%-------------------------------------------------------------------
% Beginning of document
%-------------------------------------------------------------------

\begin{document}

\chapter*{Table des illustrations}

\listoffigures
\listoftables

\chapter{Illustrations diverses}

\section{Première section}

\lipsum[1]
\myfigure[Figure test]{example-image-b}

\end{document}

решение1

Вы уже используете пакет KOMA-Script tocbasic. Поэтому вы можете изменить отступ записей с помощью \DeclareTOCStyleEntryатрибута и indent. Но проблема с вашим кодом в том, что вы используете sectionзаписи для цифр вместо figure. Поэтому вам также придется изменить это.

\documentclass[11pt, a4paper, dvipsnames, openany, twoside]{book}

%-------------------------------------------------------------------
% Packages
%-------------------------------------------------------------------

\usepackage[francais]{babel}
\usepackage{caption}
\usepackage{etoolbox}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\usepackage{tikz}
\usepackage{tocbasic}
%\usepackage[nottoc, notlof, notlot]{tocbibind}
\usepackage{xcolor}

%-------------------------------------------------------------------
% Structure
%-------------------------------------------------------------------

% Color
\colorlet{maincolor}{Red}

% Lists : settings

    % Set "listof" as sections and not as chapters
    \addtotoclist[float]{lof}
    \renewcommand*\listoffigures{\listoftoc[{\listfigurename}]{lof}}
    \addtotoclist[float]{lot}
    \renewcommand*\listoftables{\listoftoc[{\listtablename}]{lot}}
    \makeatletter
    \doforeachtocfile[float]{\setuptoc{\@currext}{leveldown}}
    \makeatother

    \renewcommand{\numberline}[1]{#1~--~}
    \renewcommand{\thefigure}{Figure~\arabic{chapter}.\arabic{figure}}
    \renewcommand{\thetable}{Tableau~\arabic{chapter}.\arabic{table}}

    \renewcommand\frenchtablename{}
    \renewcommand{\frenchlistfigurename}{Liste des figures}

% Figure

\newcommand{\myfigure}[2][]{\ifstrempty{#1}{\tcbincludegraphics{#2}}{\tcbincludegraphics[arc=8pt,
    width=7cm, colframe=maincolor, step and label={figure}{fig:#1},
    title=\textbf{\thefigure~--~{#1}},
    phantom={\addcontentsline{lof}
      {figure}% CHANGED
      {\protect\numberline{\thefigure}{#1}}},]{#2}}}

\newcommand*{\numberwithhyphen}[1]{#1~--~}% ADDED (You could use this also to add `\figurename` before the number, if you'd also adapt numwidth attribute.)

\DeclareTOCStyleEntry[indent=0pt,numwidth=5.5em,entrynumberformat=\numberwithhyphen]{tocline}{figure}% ADDED

%-------------------------------------------------------------------
% Beginning of document
%-------------------------------------------------------------------

\begin{document}

\chapter*{Table des illustrations}

\listoffigures
\listoftables

\chapter{Illustrations diverses}

\section{Première section}

\lipsum[1]
\myfigure[Figure test]{example-image-b}

\end{document}

введите описание изображения здесь

\DeclareTOCStyleEntryБолее подробную информацию о . см. в руководстве KOMA-Script .

Кстати: tocbasicтакже есть возможность добавлять к записям префикс в виде строки типа Figure. Так что добавление этого \thefigureне понадобится, если это приведет к проблемам с другим использованием \thefigure.

решение2

Я нашел чистое решение без пакетов здесь:

Отступы в оглавлении и списках рисунков/таблиц

\makeatletter
\renewcommand*\l@figure{\@dottedtocline{1}{0em}{2.3em}}% Default: 1.5em/2.3em
\let\l@table\l@figure
\makeatother

Связанный контент