
В 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
для распределения контента и/или его растягивания и размещения в текстовом блоке.