
Я хочу разместить две фигуры рядом, но на крайних концах, т.е. первая подфигура должна быть на крайнем левом краю, а вторая подфигура должна быть на крайнем правом краю. Как это можно сделать? Я использую код, показанный ниже
\begin{figure}[htp!]
\begin{subfigure}{0.5\textwidth}
\includegraphics[scale=0.17]{x.png}
\end{subfigure}
\begin{subfigure}{0.2\textwidth}
\raggedright
\includegraphics[scale=0.35]{y.png}
\end{subfigure}
\end{figure}
решение1
В (La)TeX вы можете включать длины гибкой ширины, так называемые пропуски, и вы можете растягивать и сжимать их на порядки бесконечности. A ведет себя как пропуск шириной 0pt, но который растягивается на второй порядок бесконечности, поэтому он займет столько места, сколько доступно (при условии, что в том же горизонтальном поле \hfill
нет других s). Поэтому мы можем использовать , чтобы разделить ваши s как можно дальше в этой строке.\hfill
\hfill
subfigure
РЕДАКТИРОВАТЬДобавление и развитие информации, представленной в@JohnKormylo's комментарий:
Порядки бесконечности — fil
, fill
, и filll
(от низшего к высшему, есть также fi
, но он практически никогда не используется и доступен только в Lua(La)TeX). Обычно код пакета и ядра должен редко использовать бесконечность второго или третьего порядка и придерживаться fil
, чтобы пользователи могли легко их переопределять. Это верно, например, для \parfillskip
, который добавляется в конце каждого абзаца, чтобы сделать последнюю строку неровной, и обычно имеет значение 0pt plus 1fil
. Если бы вы сейчас использовали \hfil
(что эквивалентно \hskip 0pt plus 1fil
), вы бы не вставили второе изображение в конец строки, а использовали бы только половину доступного пространства, другая половина заполняется \parfillskip
. Вот почему нам нужно по крайней мере использовать бесконечность второго порядка (которая бесконечно больше первого порядка) и использовать \hfill
.
\hfilll
кстати, не определено, и вам придется использовать \hspace{0pt plus 1filll}
(или \hskip 0pt plus 1filll
).
\documentclass[]{article}
\usepackage{subcaption}
\usepackage[]{graphicx}
\begin{document}
\begin{figure}
\begin{subfigure}{0.5\textwidth}
\includegraphics[width=\linewidth, page=1]{example-image-duck}
\caption{A pizza duck}
\end{subfigure}\hfill
\begin{subfigure}{0.2\textwidth}
\raggedright
\includegraphics[width=\linewidth, page=4]{example-image-duck-portrait}
\caption{A clairvoyant duck}
\end{subfigure}%
\caption{Ducks}
\end{figure}
\end{document}
решение2
Что касается комментария @Skillmon
Хотя subfig
и subfigure
пакеты устарели и не должны больше использоваться. Примечание: subfig
поддержка hyperref
с ОШИБКАМИ!
\usepackage{subfig}
...
\begin{figure}[!ht]
\subfloat[Picture 1\label{fig:1}]{%
\includegraphics[width=0.4\textwidth]{1.png}
}
\hfill
\subfloat[Picture 2\label{fig:2}]{%
\includegraphics[width=0.4\textwidth]{2.png}
}
\caption{Main figure caption}
\end{figure}