我使用minipage
环境是为了在subfigure
侧面添加一个标题。它工作正常。但我遇到了一个问题,因为我希望图形正好位于页面的水平中间,并且caption
( minipage
) 位于它之后。
代码:
\documentclass[
BCOR12mm,
DIV18,
headsepline,
twoside,
idxtotoc,
bibtotoc,
liststotoc,
openany,
pointlessnumbers,
12pt]{scrbook}
\usepackage{datatool}
\usepackage[english,ngerman]{babel}
\usepackage{textgreek}
\usepackage[T1,T2A]{fontenc}
\usepackage{lmodern}
\usepackage[hang]{caption}
\usepackage{subcaption}
\usepackage[final]{graphicx}
\begin{document}
\begin{figure}[!htb]
\centering
\begin{subfigure}[t]{\textwidth}
\centering
\includegraphics[height=0.1\textheight]{smallfig}
\begin{minipage}{.2\textwidth}
\caption{small}
\end{minipage}
\label{label}
\end{subfigure}
\begin{subfigure}[m]{\textwidth}
\centering
\includegraphics[height=0.4\textheight]{bigfig1}
\begin{minipage}{.2\textwidth}
\caption{big1}
\end{minipage}
\label{label}
\end{subfigure}
\begin{subfigure}[b]{\textwidth}
\centering
\includegraphics[height=0.4\textheight]{bigfig3}
\begin{minipage}{.2\textwidth}
\caption{big2}
\end{minipage}
\end{subfigure}
\caption{3 centered Subfigures under each other with side captions on the right}
\label{help}
\end{figure}
\end{document}
\centering
此处使整个subfigure
(图形 + 标题) 位于中心,从而使图形略微向左对齐。我希望它完全居中。
答案1
像这样:
\documentclass[
BCOR12mm,
DIV18,
headsepline,
twoside,
idxtotoc,
bibtotoc,
liststotoc,
openany,
pointlessnumbers,
12pt]{scrbook}
\usepackage{datatool}
\usepackage[english,ngerman]{babel}
\usepackage{textgreek}
\usepackage[T1,T2A]{fontenc}
\usepackage{lmodern}
\usepackage[hang,singlelinecheck=false]{caption} % <------
\usepackage{subcaption}
\usepackage[demo]{graphicx}
\usepackage[export]{adjustbox}
\begin{document}
\begin{figure}[!htb]
\centering
\begin{subfigure}{\textwidth}
\centering
\includegraphics[width=0.5\textwidth, height=0.1\textheight, valign=m]{smallfig}%
\makebox[0pt][l]{\quad % <------
\begin{minipage}{.2\textwidth}
\caption{small}
\end{minipage}
}
\label{label}
\end{subfigure}
\medskip
\begin{subfigure}{\textwidth}
\centering
\includegraphics[width=0.5\textwidth, height=0.4\textheight, valign=m]{bigfig1}%
\makebox[0pt][l]{\quad % <------
\begin{minipage}{.2\textwidth}
\caption{big1}
\end{minipage}
}
\label{label}
\end{subfigure}
\medskip
\begin{subfigure}[b]{\textwidth}
\centering
\includegraphics[height=0.4\textheight, valign=m]{bigfig3}%
\makebox[0pt][l]{\quad % <------
\begin{minipage}{.2\textwidth}
\caption{big2 big2 big2 big2 big2 big2 big2}
\end{minipage}
}
\caption{3 centered Subfigures under each other with side captions on the right}
\label{help}
\end{figure}
\end{document}
编辑(1):
对于标题的垂直居中,您需要将图像基线移动到其垂直中间。这可以通过不同的方式实现...其中之一是使用adjustbox
包(如在姆韦多于):
编辑(2):
- 在子图像之间添加空间
\medskip
(如果需要图像之间更大(或更小)的垂直距离,则应将其替换为\bigskip
或\smallskip
或`\vspace{} 等) - 为了更好地定位子标题,已添加
singlelinecheck=false
到包的选项中caption
- 带有标题的 s也
minimapge
向右移动,并在\quad
其前面插入 \makebox[0pt][l]{...}
(其中,0pt
表示盒子的宽度,表示l
盒子的位置,详情请参见LaTeX/盒子)使图像的居中与标题的宽度无关。