效果是这样的,子图 (a) 的标题比子图 (b) 高出一截:想要达到差不多这么个效果:刘海洋回复:在可能的情况下,那样用现成的 floatrow 宏包是最方便的。如果条件不允许,才需要看下面的内容。子图的内容居中但子标题不居中,那么我直观地想到两种思路:

  • 让两个子图的内容物高度一致,然后让这个内容物里面图形垂直居中。

  • 把两个子图和子图标题分别放进 2x2 的表格中,这样很容易控制垂直对齐。

前一种方式写起来比较直接,只是需要手工指定子图内容物的高度(floatrow 宏包是通过计算,在第二次编译时得到这个高度的)。后一种方式是控制对齐的「正统」方式,但要在此基础上控制子标题样式、间距之类,则可能麻烦一点。

\documentclass{article}
\usepackage{floatrow}
\usepackage{caption}
\DeclareCaptionSubType[alph]{figure}
\floatsetup[subfigure]{style=plain,heightadjust=object}
\begin{document}
\begin{figure}[!htb]
\ffigbox[\FBwidth]{%
\begin{subfloatrow}
\ffigbox[\FBwidth]{\caption{dummy 1}}{\rule{3cm}{4cm}}
\ffigbox[\FBwidth]{\caption{dummy 2}}{\rule{4cm}{3cm}}%
\end{subfloatrow}}
{\caption{dummy}}
\end{figure}
\end{document}

第二种方式:

\documentclass{article}

\usepackage{tikz}
\usepackage{subcaption}

\begin{document}
\begin{figure}[!ht]
  \centering
  \begin{subfigure}{.4\linewidth}
    \parbox[][4cm][c]{\linewidth}{% 手工指定高度、内容对齐
      \centering
      \tikz\draw circle(1);}
    \subcaption{small}
  \end{subfigure}
  \begin{subfigure}{.4\linewidth}
    \parbox[][4cm][c]{\linewidth}{% 手工指定高度、内容对齐
      \centering
      \tikz\draw circle(2);}
    \subcaption{large}
  \end{subfigure}
  \caption{circle}
\end{figure}
\end{document}

选自:https://www.zhihu.com/question/63029836/answer/204584525

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部