
Я попробовал решение \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}