如何计算和使用图形/tikzpicture/表格/数组的边界框

如何计算和使用图形/tikzpicture/表格/数组的边界框

我正在写一些文本,通常先有一些文本,然后并排有一些图形/tikz 图片/表格(带有表格或数组环境),按照这个顺序。我使用的命令是

\newcommand{\mycommand}[4][15pt]{%
    \begin{minipage}{\linewidth-#4-#1}%
        #2
    \end{minipage}%
\hfill
    \begin{minipage}{#4}
    #3
    \end{minipage}
}

我的想法是将两者并排放置,以优化水平空间。

我的问题是,如何自动提取第二个小页面的边界框并将其插入到第一个小页面中?以便使用所有水平空间。像这样

\newcommand{\mycommand}[3][15pt]{%
    \begin{minipage}{\linewidth-<width of bounding box>-#1}%
        #2
    \end{minipage}%
\hfill
    #3 % extract <width of bounding box>
}

其中 #3 是一个图形、tikzpicture、数组、表格环境,或者可能只是\includegraphics{}

有通用的解决方案吗?

答案1

您可以使用sidebysidetcolorbox。其文档(第 122 页)解释了如何构建一个新mysidebox命令,该命令根据其内容调整左侧。我刚刚改为调整右侧。我展示了两个示例,一个使用颜色和 amrgins,第二个使用皮肤blankest来避免所有 toclorbox 线条和颜色。

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\newsavebox{\mysavebox}

\DeclareTotalTColorBox{\mysidebox}{ O{} +m +m }{
bicolor,colback=white,colbacklower=yellow!10,
fonttitle=\bfseries,center title,
sidebyside,
code={\sbox{\mysavebox}{#3}},
righthand width=\wd\mysavebox,
drop lifted shadow,
#1
}
{#2\tcblower\usebox{\mysavebox}}

\begin{document}
\lipsum[2]

\mysidebox{\lipsum[2]}{%
\begin{tikzpicture}
\path[fill=red!20,draw=red!50!black]
(0,0) node[below]{A} -- (3,1) node[right]{B}
-- (1,4) node[above]{C} -- cycle;
\end{tikzpicture}}

\mysidebox[blankest]{\lipsum[2]}
{\begin{tikzpicture}
\path[fill=red!20,draw=red!50!black]
(0,0) node[below]{A} -- (3,1) node[right]{B}
-- (1,4) node[above]{C} -- cycle;
\end{tikzpicture}}
\end{document}

在此处输入图片描述

相关内容