Как выровнять текст в подписи?

Как выровнять текст в подписи?

Я хочу провести обзор нескольких методов в пределах рисунка. Оказалось, что существует множество методов, поэтому я использовал подзаголовок с подссылкой, чтобы описать вопрос. Однако, поскольку меток слишком много, я посчитал удобным разместить каждое описание в одну строку, используя \\\hspace{textwidth}в качестве обходного пути перенос строки. Я не хочу размещать информацию в подзаголовке под изображением, так как мне это не нравится, и это нарушит формат всего документа, везде, где у меня есть подзаголовки, я буду ссылаться на их метку (с \subref) в подписи рисунка. Поскольку метки подссылок используют разную ширину, левая сторона подписи выглядит довольно неровной, угловатой. A MWE:

\documentclass[oneside,DIV=17]{scrbook}
\usepackage[font={scriptsize,sf},labelfont={scriptsize,sf,bf}]{caption}
\usepackage[subrefformat=parens,labelfont={normalfont,scriptsize,sf},labelsep=space]{subcaption}
\setcapindent{0pt}

\begin{document}
 \begin{figure}
   \subcaptionbox{\label{fig:a}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:b}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:c}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:d}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:e}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:f}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:g}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:h}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:i}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:j}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:k}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \hspace{0.3\textwidth}
   \caption{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus
sem. Nulla et lectus vestibulum urna fringilla ultrices.\\\hspace{\textwidth}
    \subref{fig:a} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:b} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:c} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:d} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:e} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:f} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:g} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:h} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:i} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:j} Short text fit in one line\\\hspace{\textwidth}
    \subref{fig:k} Short text fit in one line
   }
 \end{figure}
\end{document}

что приводит к (красная линия, выделяющая проблему):

неровное левое поле

Я знаю, если бы я не переносил текст подписи на другую строку, все было бы в порядке. Но я бы сказал, что читателю было бы проще выбрать описание из колонки, чем искать метку в тексте. Спасибо за любые предложения.

решение1

Надеюсь, вам не придется печатать список рисунков в вашем документе с такими подписями... В таком случае не забудьте использовать необязательный аргумент \caption:

\caption[short caption]{long caption}

Вот три альтернативы.

Первый вариант:

\documentclass[oneside,DIV=17]{scrbook}
\usepackage[font={scriptsize,sf},labelfont={scriptsize,sf,bf}]{caption}
\usepackage[subrefformat=parens,labelfont={normalfont,scriptsize,sf},labelsep=space]{subcaption}
\setcapindent{0pt}

\begin{document}
 \begin{figure}
   \subcaptionbox{\label{fig:a}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:b}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:c}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:d}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:e}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:f}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:g}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:h}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:i}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:j}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:k}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \hspace{0.3\textwidth}
   \caption{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus
sem. Nulla et lectus vestibulum urna fringilla ultrices.\\
    \llap{\subref{fig:a}} Short text fit in one line\\
    \llap{\subref{fig:b}} Short text fit in one line\\
    \llap{\subref{fig:c}} Short text fit in one line\\
    \llap{\subref{fig:d}} Short text fit in one line\\
    \llap{\subref{fig:e}} Short text fit in one line\\
    \llap{\subref{fig:f}} Short text fit in one line\\
    \llap{\subref{fig:g}} Short text fit in one line\\
    \llap{\subref{fig:h}} Short text fit in one line\\
    \llap{\subref{fig:i}} Short text fit in one line\\
    \llap{\subref{fig:j}} Short text fit in one line\\
    \llap{\subref{fig:k}} Short text fit in one line
   }
 \end{figure}
\end{document} 

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

Второй вариант:

\documentclass[oneside,DIV=17]{scrbook}
\usepackage[font={scriptsize,sf},labelfont={scriptsize,sf,bf}]{caption}
\usepackage[subrefformat=parens,labelfont={normalfont,scriptsize,sf},labelsep=space]{subcaption}
\setcapindent{0pt}

\begin{document}
 \begin{figure}
   \subcaptionbox{\label{fig:a}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:b}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:c}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:d}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:e}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:f}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:g}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:h}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:i}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:j}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:k}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \hspace{0.3\textwidth}
   \caption{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus
sem. Nulla et lectus vestibulum urna fringilla ultrices.\\
    \protect\makebox[.5cm]{\subref{fig:a}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:b}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:c}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:d}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:e}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:f}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:g}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:h}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:i}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:j}} Short text fit in one line\\
    \protect\makebox[.5cm]{\subref{fig:k}} Short text fit in one line
   }
 \end{figure}
\end{document} 

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

Третий вариант:

\documentclass[oneside,DIV=17]{scrbook}
\usepackage[font={scriptsize,sf},labelfont={scriptsize,sf,bf}]{caption}
\usepackage[subrefformat=parens,labelfont={normalfont,scriptsize,sf},labelsep=space]{subcaption}
\setcapindent{0pt}

\begin{document}
 \begin{figure}
   \subcaptionbox{\label{fig:a}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:b}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:c}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:d}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:e}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:f}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:g}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:h}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:i}}{\rule{0.3\textwidth}{0.25\textwidth}}\par
   \subcaptionbox{\label{fig:j}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \subcaptionbox{\label{fig:k}}{\rule{0.3\textwidth}{0.25\textwidth}}\hfill
   \hspace{0.3\textwidth}
   \caption{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus
sem. Nulla et lectus vestibulum urna fringilla ultrices.\\
    \protect\makebox[.5cm][l]{\subref{fig:a}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:b}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:c}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:d}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:e}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:f}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:g}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:h}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:i}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:j}} Short text fit in one line\\
    \protect\makebox[.5cm][l]{\subref{fig:k}} Short text fit in one line
   }
 \end{figure}
\end{document} 

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

решение2

Используйте табличную форму:

\documentclass{article}
\usepackage{lipsum}
\usepackage[font={scriptsize,sf},labelfont={scriptsize,sf,bf}]{caption}
\usepackage[subrefformat=parens,labelfont={normalfont,scriptsize,sf},labelsep=space]{subcaption}

\begin{document}
 \begin{figure}
   \subcaptionbox{\label{fig:a}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:b}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:c}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:d}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:e}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:f}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:g}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:h}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:i}}{}\hspace{1cm}~
   \subcaptionbox{\label{fig:j}}{}
   \caption{\protect\lipsum[1]\smallskip
    \protect\tabular{@{}l @{~} l@{}}
    \subref{fig:a} & Short text fit in one line\\
    \subref{fig:b} & Short text fit in one line\\
    \subref{fig:c} & Short text fit in one line\\
    \subref{fig:d} & Short text fit in one line\\
    \subref{fig:e} & Short text fit in one line\\
    \subref{fig:f} & Short text fit in one line\\
    \subref{fig:g} & Short text fit in one line\\
    \subref{fig:h} & Short text fit in one line\\
    \subref{fig:i} & Short text fit in one line\\
    \subref{fig:j} & Short text fit in one line
    \protect\endtabular
   }
 \end{figure}
\end{document}

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

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