Выровненные рисунки и подписи на одной строке

Выровненные рисунки и подписи на одной строке

В LaTeX я пытаюсь разместить два рисунка рядом друг с другом, с подписями внизу, где подписи могут иметь неравное количество строк. Изображения выровнены по нижнему краю, а подписи — по верхнему краю.

Цифры 8, 9, 10, 11 вfloatrow документация(стр. 20) иллюстрируют то, что я надеюсь сделать (используя четыре рисунка), но автор приводит только частичный пример, который я не могу заставить работать:

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

Может ли кто-нибудь предоставить минимальный рабочий пример, который создает рисунки 8, 9, 10, 11, как показано в документе. Для имен файлов изображений вы можете использовать graphics/fig8.png, graphics/fig9.pngи т. д. И если бы это был полный файл LaTeX, это было бы предпочтительнее, чтобы я мог увидеть и преамбулу.

И последнее: я использую этот стиль tufte-book— мне кажется, он иногда конфликтует с другими пакетами, но я разберусь с этим позже. :-)

решение1

Вы можете схватитьfloatrow документация код:

\floatsetup[widefloat]{margins=hangleft}
\begin{figure*}%
  \begin{floatrow}[4]
    \ffigbox
      {\caption{Figure~I in the row (\texttt{floatrow}), ``column'' width}%
      \label{fig:row:Dog}}
      {\input{TheDog.picture}}

    \ffigbox[\FBwidth]
      {\caption{Figure~II in the row (\texttt{floatrow}), graphics width}%
      \label{fig:row:WcatI}}
      {\unitlength1.08\unitlength\input{TheCat.picture}}

    \ffigbox[\Xhsize/2]
      {\caption{Figure~III in the row, float's width box has the
       half of the rest space of row}%
      \label{fig:row:mouse}}
      {{\setlength\unitlength{\hsize/58}%
      {\input{Mouse.picture}}}}

    \ffigbox[\Xhsize]
      {\caption{Figure~IV in the row,
      occupies the rest space of row}%
    \label{fig:row:cheese}}
    {\input{Cheese.picture}}
  \end{floatrow}
\end{figure*}%

где изображения содержатся внутриpictures.tex.

В любом случае, подход без использования пакетов будет заключаться в том, чтобы поместить каждый из них внутрь tabular:

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

\documentclass{article}
\usepackage{lipsum,graphicx}

\begin{document}
\sloppy% Just for this example
\lipsum[1]

\begin{figure}[ht]
  \centering
  \begin{tabular}{ p{2.3cm} p{1.5cm} p{2.7cm} p{2.3cm} }
    \includegraphics[width=\linewidth]{example-image} &
    \includegraphics[width=\linewidth]{example-image-a} &
    \includegraphics[width=\linewidth]{example-image-b} &
    \includegraphics[width=\linewidth]{example-image-c}
    \\[\dimexpr-\normalbaselineskip+\abovecaptionskip]
    \caption{First figure in this row of figures} &
    \caption{Second figure in this row of figures} &
    \caption{Third figure} &
    \caption{Last figure that has a very long caption, stretching multiple rows}
  \end{tabular}
\end{figure}

\lipsum[2]

\end{document}

Каждое изображение + подпись попадает в фиксированный столбец p, при этом каждое изображение устанавливается на ширину этого столбца. Это похоже на установку изображения в настройках ключ-значение для \includegraphics.

Это работает, потому что изображения естественным образом устанавливаются на базовой линии и занимают ровно одну строку. Более того, каждая ячейка в пределах tabularустанавливается с использованием p-столбца, у которого есть якорь выравнивания, установленный на базовой линии верхней строки. В результате изображения выравниваются по нижнему краю, а подписи — по верхнему краю.

Вы можете настроить интервал между рисунками и подписями по мере необходимости. То же самое касается и интервала между изображениями, который по умолчанию \tabcolsepв приведенном выше примере. Можно также использоватьtabularxдля распределения контента и/или его растягивания и размещения в текстовом блоке.

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