Длинные подписи с одинарным интервалом, занимающие более одной строки в списке рисунков

Длинные подписи с одинарным интервалом, занимающие более одной строки в списке рисунков

Я попробовал решение \caption[\protect\vspace{-0.5ex}{ long caption text}]{long caption text}, но оно ничего не делает. Мне нужен постоянный двойной интервал в LOF, а когда дело доходит до длинных подписей, больше одной строки, он должен быть одинарным. Не могли бы вы помочь? Спасибо.

\documentclass[12pt,oneside,letterpaper,chapterprefix=on,numbers=noenddot]{scrbook}
\setuptoc{toc}{leveldown}% if ToC should be on section level
\usepackage[english]{babel}
%%% document setup
\usepackage[demo]{graphicx}


\usepackage[list-entry=heading]{caption}
\usepackage{booktabs}% table
\usepackage[doublespacing]{setspace}% <- changed


\setkomafont{captionlabel}{\bfseries}%make caption label bold
\setkomafont{caption}{\bfseries}%make caption bold
\setcapindent{0pt}%removes hanging indent from captions





%----------------%-------------------------%-----------
\begin{document}

\begingroup
\def\addvspace#1{}
\clearpage % to force a new page
\addcontentsline{toc}{chapter}{LIST OF FIGURES}
\listoffigures
%\doublespacing
\endgroup
\mainmatter

\begin{figure}
\includegraphics{test}
\caption[\protect\vspace{-0.25ex}{ llong caption text 2long caption text 3long caption text 4long caption text 5long caption text }]{1long caption text 2long caption text 3long caption text 4long caption text 5long caption text 6long caption text}
\end{figure}
\begin{figure}


\includegraphics{test2}
\caption[\protect\vspace{-0.5ex}{ llong caption text 2long caption text 3long caption text 4long caption text 5long caption text }]{1long caption text 2long caption text 3long caption text 4long caption text 5long caption text 6long caption text}
\end{figure}
\end{document}

решение1

Чтобы установить список рисунков (и других оглавлений) с одинарным интервалом, вы можете добавить \singlespacingили \setstretch{1}в самом начале либо сразу после заголовка, используя \AfterTOCHead, либо непосредственно перед чтением вспомогательного файла соответствующего оглавления \BeforeStartingTOC, используя , например

\BeforeStartingTOC[lof]{\singlespacing}% for the list of figures only

или

\BeforeStartingTOC{\singlespacing}% for every TOC (i.e. table of contents, list of figures, list of tables)

Чтобы иметь белую линию между записями в списке цифр, вы можете изменить опцию beforeskip, например, используя

\DeclareTOCStyleEntry[beforeskip=\baselineskip]{tocline}{figure}

Это должно быть сделано для всех типов записей, которые должны иметь это. Для таблиц скопируйте команду и замените figureна table.

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

Для записей в оглавлении вы также можете использовать

\RedeclareSectionCommands[tocbeforeskip=\baselineskip]{section,subsection}

Дополнительную информацию о . см. в части II руководства KOMA-Script \RedeclareSectionCommand.

Для помещения списка рисунков и списка таблиц в оглавление следует также использовать специальную функцию KOMA-Script: option listof=totoc. Для удаления пробела между главами из этих списков также не нужно локально переопределять, \addvspaceа можно использовать option listof=nochaptergap.

Благодаря этим изменениям вам больше не нужно использовать необязательный аргумент \caption.

\documentclass[12pt,oneside,letterpaper,chapterprefix=on,numbers=noenddot,
  listof=totoc,listof=nochaptergap% <--- ADDED
]{scrbook}
\setuptoc{toc}{leveldown}% if ToC should be on section level
\usepackage[english]{babel}
%%% document setup
\usepackage[demo]{graphicx}


\usepackage[list-entry=heading]{caption}
\usepackage{booktabs}% table
\usepackage[doublespacing]{setspace}

\setkomafont{captionlabel}{\bfseries}%make caption label bold
\setkomafont{caption}{\bfseries}%make caption bold
\setcapindent{0pt}%removes hanging indent from captions

\BeforeStartingTOC{\singlespacing}% <--- ADDED
\DeclareTOCStyleEntry[beforeskip=\baselineskip]{tocline}{figure}
\DeclareTOCStyleEntry[beforeskip=\baselineskip]{tocline}{table}    

%----------------%-------------------------%-----------
\begin{document}

\frontmatter% <--- ADDED (without \mainmatter wouldn't make sense)

% CHANGED:
\listoffigures
\mainmatter

\begin{figure}
\includegraphics{test}
\caption{llong caption text 2long caption text 3long caption text 4long caption text 5long caption text}
\end{figure}
\begin{figure}


\includegraphics{test2}
\caption{llong caption text 2long caption text 3long caption text 4long caption text 5long caption text}
\end{figure}
\end{document}

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

решение2

Список фигур используется \l@figureдля форматирования, поэтому я добавил дополнительный \vspace{\baselineskip}. Это должно работать с любым классом документа.

Двойной интервал делают пишущие машинки. Наборщики добавляют дополнительный интервал между строками.

\documentclass[12pt,oneside,letterpaper,chapterprefix=on,numbers=noenddot]{scrbook}
\setuptoc{toc}{leveldown}% if ToC should be on section level
\usepackage[english]{babel}
%%% document setup
\usepackage[demo]{graphicx}


\usepackage[list-entry=heading]{caption}
\usepackage{booktabs}% table
%\usepackage[doublespacing]{setspace}% <- changed


\setkomafont{captionlabel}{\bfseries}%make caption label bold
\setkomafont{caption}{\bfseries}%make caption bold
\setcapindent{0pt}%removes hanging indent from captions

\makeatletter
\let\oldl@figure=\l@figure
\renewcommand{\l@figure}{\vspace{\baselineskip}\oldl@figure}
\makeatother

\begin{document}

\begingroup
\def\addvspace#1{}
\clearpage % to force a new page
\addcontentsline{toc}{chapter}{LIST OF FIGURES}
\listoffigures}%\doublespacing
\endgroup
\mainmatter

\begin{figure}
\includegraphics{test}
\caption{1long caption text 2long caption text 3long caption text 4long caption text 5long caption text 6long caption text}
\end{figure}
\begin{figure}


\includegraphics{test2}
\caption[\protect\vspace{-0.5ex}{ llong caption text 2long caption text 3long caption text 4long caption text 5long caption text }]{1long caption text 2long caption text 3long caption text 4long caption text 5long caption text 6long caption text}
\end{figure}
\end{document}

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