垂直对齐包含 dirttrees 的子图

垂直对齐包含 dirttrees 的子图

我想对齐两个dirtrees顶部以及它们各自的subcaptions底部. 更重要的是,两人的身高frameboxes应该相等(见图像如下)。我怎样才能实现这一点?

这是显示我的问题的图片: 子图中的树

以下是相应的代码:

\documentclass{article}
\usepackage{subcaption}
\usepackage{dirtree}

\begin{document}

\begin{figure}
    \centering
    \begin{subfigure}[b]{0.45\textwidth}
        \framebox[\textwidth]{%
            \begin{minipage}{0.9\textwidth}
                \footnotesize
                \dirtree{%
                .1 /.
                .2 \vdots.
                .2 tmp.
                .3 \vdots.
                .3 test.
                .4 file0.
                .4 file1.
                .4 file1\_symlink -> file1.
                .4 dir3\_symlink -> dir3.
                .4 file8\_hardlink.
                .4 dir1.
                .5 fi.
                .5 file2.
                .5 file3.
                .5 subdir1.
                .6 file4.
                .6 file5.
                .5 subdir2.
                .6 file6.
                .6 file7.
                .4 dir2.
                .5 fifo1.
                .5 fifo2.
                .4 dir3.
                .5 file8.
                .5 file9.
                }
                \caption{Tree 1}
                \label{subfig:tree1}
            \end{minipage}
        }
    \end{subfigure}
    \begin{subfigure}[b]{0.45\textwidth}
        \framebox[\textwidth]{%
            \begin{minipage}{0.9\textwidth}
                \footnotesize
                \dirtree{%
                .1 /.
                .2 \vdots.
                .2 tmp.
                .3 \vdots.
                .3 test.
                .4 dir1.
                .5 f3.
                .5 f4.
                .5 subdir1.
                .5 subdir2.
                .6 f5.
                .4 dir2.
                .4 dir3.
                .4 f1.
                .4 f2.
                .4 f2\_symlink -> f2.
                .4 f4\_hardlink.
                .4 fifo1.
                .4 fifo2.
                }
                \caption{Tree 2}
                \label{subfig:tree2}
            \end{minipage}
        }
    \end{subfigure}
    \caption{Comparison}
    \label{fig:trees-comparison}
\end{figure}

\end{document}

答案1

该包tcolorbox提供了一系列有助于实现这一点的命令,它还将简化您的代码。最相关的功能是它可以构建具有上部和下部的框,在它们之间分配空间,并为一系列框提供相同的高度。

\NewTotalTColorBox{\mybox}{m +m}{equal height group=#1, size=fbox,
sharp corners, colback=white, width=\textwidth, space to upper,
lower separated=false, fontupper=\footnotesize, nobeforeafter}{#2}

设置一个接受两个参数的盒子命令,第一个参数是应具有相同高度的一系列盒子的名称,第二个参数是盒子的内容。

这使得size=fbox, sharp corners, colback=white这个盒子看起来与普通的盒子很相似\fbox,没有花哨的背景色彩。

space to upper确保上面的内容部分\tcblower顶部对齐,其余部分底部对齐。

lower separated=false关闭tcolorbox的标准分割线打印。

fontupper设置上部使用的字体,而不必每次都写入。

示例输出

\documentclass{article}
\usepackage{subcaption}
\usepackage{dirtree}
\usepackage[xparse]{tcolorbox}

\NewTotalTColorBox{\mybox}{m +m}{equal height group=#1, size=fbox,
sharp corners, colback=white, width=\textwidth, space to upper,
lower separated=false, fontupper=\footnotesize, nobeforeafter}{#2}

\begin{document}

\begin{figure}
  \centering
  \begin{subfigure}[b]{0.45\textwidth}
    \mybox{dirs}{%
    \dirtree{%
    .1 /.
    .2 \vdots.
    .2 tmp.
    .3 \vdots.
    .3 test.
    .4 file0.
    .4 file1.
    .4 file1\_symlink -> file1.
    .4 dir3\_symlink -> dir3.
    .4 file8\_hardlink.
    .4 dir1.
    .5 fi.
    .5 file2.
    .5 file3.
    .5 subdir1.
    .6 file4.
    .6 file5.
    .5 subdir2.
    .6 file6.
    .6 file7.
    .4 dir2.
    .5 fifo1.
    .5 fifo2.
    .4 dir3.
    .5 file8.
    .5 file9.
    }
    \tcblower
    \caption{Tree 1}
    \label{subfig:tree1}
    }
  \end{subfigure}
  \begin{subfigure}[b]{0.45\textwidth}
    \mybox{dirs}{%
    \dirtree{%
    .1 /.
    .2 \vdots.
    .2 tmp.
    .3 \vdots.
    .3 test.
    .4 dir1.
    .5 f3.
    .5 f4.
    .5 subdir1.
    .5 subdir2.
    .6 f5.
    .4 dir2.
    .4 dir3.
    .4 f1.
    .4 f2.
    .4 f2\_symlink -> f2.
    .4 f4\_hardlink.
    .4 fifo1.
    .4 fifo2.
    }
    \tcblower
    \caption{Tree 2}
    \label{subfig:tree2}
    }
  \end{subfigure}
  \caption{Comparison}
  \label{fig:trees-comparison}
\end{figure}

\end{document}

相关内容