
Я пытаюсь выровнять некоторые фигуры с помощьюсубтитрыупаковка.
Мой текущий код таков:
\documentclass[11pt,twocolumn]{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{caption}
\begin{document}
\begin{figure}[htpb]
\subcaptionbox{}
{\includegraphics[width=0.48\columnwidth]{figs/Fig_a}} \hspace{.5em}
{\includegraphics[width=0.2\columnwidth]{figs/legend} phantomsubcaption}
\subcaptionbox{}
{\includegraphics[width=0.48\columnwidth]{figs/Fig_b}} \hfill
\subcaptionbox{}
{\includegraphics[width=0.48\columnwidth]{figs/Fig_c}}
\caption{}
\end{figure}
\end{document}
Что производит:
Однако я хотел бы, чтобы первое изображение осталось линейным. Я попытался использовать это:
\usepackage[export]{adjust box}
\captionsetup{justification=raggedright, singlelinecheck=false}
\begin{figure}[htpb]
\subcaptionbox{}
{\includegraphics[width=0.48\columnwidth, left]{figs/Fig_a}} \hspace{.5em}
{\includegraphics[width=0.2\columnwidth]{figs/legend} phantomsubcaption}
\subcaptionbox{}
{\includegraphics[width=0.48\columnwidth]{figs/Fig_b}} \hfill
\subcaptionbox{}
{\includegraphics[width=0.48\columnwidth]{figs/Fig_c}}
\caption{}
\end{figure}
Безуспешно:
Также, изображение с\phantomsubcaptionне имеет такой же высоты, как Рисунок (a), и я хотел бы, чтобы он был выровнен по центру вертикально, а не по низу или верху, т. е. выровнен по центру Рисунок (a). Это возможно?
Спасибо.
решение1
Это то, что вы хотите? Просто поместите узкую фигуру в первый \subcaptionbox
.
\documentclass[11pt,twocolumn]{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{caption}
\begin{document}
\begin{figure}[htpb]
\centering
\subcaptionbox{}{%
\includegraphics[width=0.48\columnwidth]{figs/Fig_a}%
\hspace{0.04\columnwidth}%
\includegraphics[width=0.2\columnwidth]{figs/legend}}\hspace*{\fill}
\subcaptionbox{}{\includegraphics[width=0.48\columnwidth]{figs/Fig_b}}\hfill
\subcaptionbox{}{\includegraphics[width=0.48\columnwidth]{figs/Fig_c}}
\caption{Some caption or this wouldn't make much sense}
\end{figure}
\end{document}
Если вы хотите, чтобы (a) было отцентрировано относительно широкого изображения, вы можете вставить узкое изображение в поле нулевой ширины:
\documentclass[11pt,twocolumn]{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{caption}
\begin{document}
\begin{figure}[htpb]
\centering
\subcaptionbox{}{%
\includegraphics[width=0.48\columnwidth]{figs/Fig_a}%
\makebox[0pt][l]{%
\hspace{0.04\columnwidth}%
\includegraphics[width=0.2\columnwidth]{figs/legend}%
}%
}\hspace*{\fill}
\subcaptionbox{}{\includegraphics[width=0.48\columnwidth]{figs/Fig_b}}\hfill
\subcaptionbox{}{\includegraphics[width=0.48\columnwidth]{figs/Fig_c}}
\caption{Some caption or this wouldn't make much sense}
\end{figure}
\end{document}
Если вы хотите, чтобы субтитры были выровнены по левому краю, сообщите об этом caption
:
\documentclass[11pt,twocolumn]{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage{caption}
\begin{document}
\begin{figure}[htpb]
\captionsetup[subfigure]{singlelinecheck=false}
\centering
\subcaptionbox{}{%
\includegraphics[width=0.48\columnwidth]{figs/Fig_a}%
\hspace{0.04\columnwidth}%
\includegraphics[width=0.2\columnwidth]{figs/legend}%
}\hspace*{\fill}
\subcaptionbox{}{\includegraphics[width=0.48\columnwidth]{figs/Fig_b}}\hfill
\subcaptionbox{}{\includegraphics[width=0.48\columnwidth]{figs/Fig_c}}
\caption{Some caption or this wouldn't make much sense}
\end{figure}
\end{document}
Его \captionsetup[subfigure]{singlelinecheck=false}
также можно разместить в преамбуле, и тогда он повлияет на все субтитры.